我想編譯一個使用QtOpenGL的軟件,但我得到一個鏈接錯誤,因爲-lGLU不存在。使用cmake 。 中的CMakeLists.txt文件的唯一相關行我看來find_package(Qt4 REQUIRED)
cmake沒有鏈接使用QtOpenGL的libGLU
該系統是64位的Linux,Debian的不穩定,QT版本4.7.3,cmake的版本2.8
我想編譯一個使用QtOpenGL的軟件,但我得到一個鏈接錯誤,因爲-lGLU不存在。使用cmake 。 中的CMakeLists.txt文件的唯一相關行我看來find_package(Qt4 REQUIRED)
cmake沒有鏈接使用QtOpenGL的libGLU
該系統是64位的Linux,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
Defined in: /usr/share/cmake/Modules/FindOpenGL.cmake
使用OpenGL與X11 set(QT_USE_QTOPENGL TRUE)
then -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
我解決了它這種方式:
target_link_libraries(MyProgram ${QT_LIBRARIES} GL GLU glut)
中的CMakeLists.txt 'find_package(Qt4的需要)以下行'' 設置(QT_USE_QTXML 1)'' 設置(QT_USE_QTOPEN GL 1)'' 設置(QT_USE_QT3SUPPORT 1)'' 包括($ {QT_USE_FILE})'' 消息( 「利布斯:$ {QT_LIBRARIES}」)' 給 '利布斯:/usr/lib/libQt3Support.so ; /usr/lib/libQtOpenGL.so; /usr/lib/libQtGui.so; /usr/lib/libQtXml.so; /usr/lib/libQtSql.so; /usr/lib/libQtNetwork.so;/usr/lib中/ libQtCore.so' – rebli
@rebli我不認爲我可以幫助任何進一步。我係統上這些行的輸出包含'-lGL'和'-lGLU'。我也使用cmake 2.8版。 – antonakos