You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Make编译OpenGL项目时遇libglut.so目标缺失错误求助

解决CMake链接GLUT库时的Make错误

问题原因

你直接在target_link_libraries中指定了.so文件的路径,CMake会将这个文件视为需要构建的目标文件,但libglut.so是预编译好的库,没有对应的构建规则,因此make会报错找不到生成它的规则。

解决方案

方案1:使用CMake的find_package自动查找系统库(推荐)

这是跨平台的标准做法,CMake会自动定位系统中的GLUT库及其头文件:
修改你的CMakeLists.txt:

cmake_minimum_required(VERSION 3.7)

project(opengl C)

include_directories(headers)

# 查找GLUT库
find_package(GLUT REQUIRED)
# 添加GLUT的头文件目录
include_directories(${GLUT_INCLUDE_DIR})

add_executable(main main.c)

# 链接GLUT库
target_link_libraries(main ${GLUT_LIBRARIES})

方案2:手动导入本地的libglut.so(适用于自定义编译的库)

如果你的libglut.so是自己编译的、不在系统默认路径下的库,可以将其声明为导入目标,告诉CMake这是一个已存在的库:

cmake_minimum_required(VERSION 3.7)

project(opengl C)

include_directories(headers)

add_executable(main main.c)

# 声明导入的GLUT库
add_library(glut SHARED IMPORTED)
# 指定库文件的路径
set_target_properties(glut PROPERTIES
    IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/libglut.so
)
# 链接导入的库
target_link_libraries(main glut)

验证步骤

  1. 删除原有的构建目录(比如build/)
  2. 重新执行:
cmake .
make

内容的提问来源于stack exchange,提问作者gronk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:32:35