cmake没有使用QtOpenGL链接libGLU

时间:2011-07-25 21:36:56

标签: opengl qt4 cmake glu

我正在尝试编译使用QtOpenGL的软件,但我收到链接错误,因为-lGLU不存在。 使用cmake。 我认为CMakeLists.txt文件中唯一相关的行find_package(Qt4 REQUIRED)

系统是Linux 64位,Debian不稳定,qt版本4.7.3,cmake版本2.8

4 个答案:

答案 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