使用CMake构建GLUT项目时出现gluPerspective()未定义引用错误
解决Linux下CMake编译OpenGL程序时gluPerspective未定义引用的问题
你的问题核心是gluPerspective属于GLU(OpenGL Utility Library)库,而非GLUT或基础OpenGL组件,当前CMake配置未链接GLU库,导致链接阶段找不到该函数。同时你的CMakeLists.txt存在一处语法错误,以下是修复步骤:
1. 修正CMakeLists.txt的语法错误
原配置中add_executable({PROJECT_NAME} main.cpp glad.c)缺少变量引用的$符号,应改为:
add_executable(${PROJECT_NAME} main.cpp glad.c)
2. 添加GLU库的链接
修改target_link_libraries,加入GLU库的导入目标OpenGL::GLU。同时add_dependencies语句是多余的,可以直接删除(target_link_libraries会自动处理依赖关系)。
修复后的完整CMakeLists.txt:
cmake_minimum_required(VERSION 3.17) project(proj03) add_executable(${PROJECT_NAME} main.cpp glad.c) find_package(OpenGL REQUIRED) find_package(GLUT REQUIRED) target_link_libraries(${PROJECT_NAME} OpenGL::OpenGL OpenGL::GLU GLUT::GLUT)
3. 确保系统已安装GLU开发包
如果仍报错,检查是否安装了GLU的开发依赖:
- Debian/Ubuntu系:
sudo apt install libglu1-mesa-dev - CentOS/RHEL系:
sudo yum install mesa-libGLU-devel
内容的提问来源于stack exchange,提问作者chasekosborne
相关产品推荐
相关产品推荐

