我正在尝试编译使用QtOpenGL的软件,但我收到链接错误,因为-lGLU不存在。
使用cmake。
我认为CMakeLists.txt文件中唯一相关的行find_package(Qt4 REQUIRED)
系统是Linux 64位,Debian不稳定,qt版本4.7.3,cmake版本2.8
答案 0 :(得分:4)
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
答案 1 :(得分:3)
我这样解决了:
target_link_libraries(MyProgram ${QT_LIBRARIES} GL GLU glut)
答案 2 :(得分:2)
如果执行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})
答案 3 :(得分:1)
我不知道这是否是正确的解决方案,但是在我将这些行添加到CMakeLists.txt
之后构建完成了:
find_package(OpenGL)
并添加了
${OPENGL_LIBRARIES}
到
target_link_libraries