Linux下CLion编译含freeglut的C++项目CMake链接错误求助
解决CMake链接freeglut项目时的目标不存在错误
看你给出的报错信息,核心问题其实很直白:你在target_link_libraries里指定要链接的目标是GdvProject,但实际上你用add_executable创建的可执行文件目标是testas——CMake找不到你说的那个待链接目标,自然就抛出错误了。
具体修复步骤
直接修改你的CMakeLists.txt里的链接配置行,把目标名换成你实际创建的可执行文件名称即可:
cmake_minimum_required(VERSION 2.8) project(GdvProject) add_executable(testas main.cpp) find_package(OpenGL REQUIRED) # 如果你的系统安装的是freeglut,部分环境下可以尝试用FreeGLUT替代GLUT find_package(GLUT REQUIRED) include_directories( ${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) # 将这里的GdvProject替换为testas target_link_libraries(testas ${OPENGL_LIBRARIES} ${GLUT_LIBRARY})
额外优化建议
- 建议把CMake版本要求升级到3.0以上(比如
cmake_minimum_required(VERSION 3.10)),新版本的CMake不仅有更完善的依赖处理逻辑,错误提示也会更精准。 - 如果你的系统装的是freeglut,有些环境下
find_package(GLUT)可能无法正确识别库文件,这时候可以换成find_package(FreeGLUT REQUIRED),对应的链接库变量是${FREEGLUT_LIBRARY},包含目录变量是${FREEGLUT_INCLUDE_DIR}。
修改完成后重新执行构建流程,这个链接目标不存在的问题应该就能解决了。
内容的提问来源于stack exchange,提问作者Kyu96
相关产品推荐
相关产品推荐

