我正在尝试编译使用 QtOpenGL 的软件,但由于 -lGLU 不存在,因此出现链接错误。使用 cmake。在我看来,CMakeLists.txt 文件中唯一相关的行find_package(Qt4 REQUIRED)
系统是Linux 64bit,Debian不稳定,qt版本4.7.3,cmake版本2.8
GLU 既不是 OpenGL 也不是 Qt 的一部分。您必须手动将其添加为附加依赖项;CMake FindOpenGL 模块还搜索 GLU
% cmake --help-module FindOpenGL cmake version 2.8.1 FindOpenGL Try to find OpenGL Once done this will define OPENGL_FOUND - system has OpenGL OPENGL_XMESA_FOUND - system has XMESA OPENGL_GLU_FOUND - system has GLU OPENGL_INCLUDE_DIR - the GL include directory OPENGL_LIBRARIES - Link these to use OpenGL and GLU If you want to use just GL you can use these values OPENGL_gl_LIBRARY - Path to OpenGL Library OPENGL_glu_LIBRARY - Path to GLU Library On OSX default to using the framework version of opengl
人们必须更改 OPENGL_glu_LIBRARY 和 OPENGL_gl_LIBRARY 的缓存值才能在 OSX 上使用 OpenGL 和 X11
Defined in: /usr/share/cmake/Modules/FindOpenGL.cmake
我是这样解决的:
target_link_libraries(MyProgram ${QT_LIBRARIES} GL GLU glut)
如果您这样做set(QT_USE_QTOPENGL TRUE)
,则-lGLU
包含在链接器选项中:
find_package(Qt4 REQUIRED)
set(QT_USE_QTOPENGL TRUE)
include(${QT_USE_FILE})
message("Libs: ${QT_LIBRARIES}")
add_executable(program main.cpp)
target_link_libraries(program ${QT_LIBRARIES})
我不知道这是否是正确的解决方案,但是在我将这些行添加到之后构建完成CMakeLists.txt
:
find_package(OpenGL)
并添加
${OPENGL_LIBRARIES}
至
target_link_libraries