2011-07-25 18 views
2

QtOpenGLを使用するソフトウェアをコンパイルしようとしていますが、-lGLUが存在しないためリンクエラーが発生します。 cmakeが使用されます。 CMakeLists.txtファイル内の のみ該当する行は、システムがLinuxの64ビット、Debianの不安定、QTバージョン4.7.3、cmakeのバージョン2.8cmakeはQtOpenGLを使用してlibGLUをリンクしていません。

答えて

4

GLUあるfind_package(Qt4 REQUIRED)

私には思えるの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 

人々意志 その場合はOSX

 Defined in: /usr/share/cmake/Modules/FindOpenGL.cmake 
2

にX11でOpenGLを使用するOPENGL_glu_LIBRARYと OPENGL_gl_LIBRARYのキャッシュ値を変更する必要があります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}) 
+0

CMakeLists.txt 'find_package(Qt4をREQUIRED)に次の行を' ' 設定(QT_USE_QTXML 1)' は '設定(QT_USE_QTOPEN:私はそれをこのように解決しましたGL 1) '' 設定(QT_USE_QT3SUPPORT 1) ' は 'は、($ {QT_USE_FILE})' ' メッセージ( "Libsの:$ {QT_LIBRARIES}")' 与える 'Libsの:/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

+0

@rebli私はそれ以上は助けることができないと思います。私のシステム上のこれらの行の出力には '-lGL'と' -lGLU'が含まれています。私はcmakeバージョン2.8も使用しています。 – antonakos

0

これは適切なソリューションである場合、私は知らないが、ビルドが を完了し、私はライン find_package(OpenGLの) をCMakeLists.txtに追加し、 にtarget_link_libraries

3

$ {OPENGL_LIBRARIES}を追加

target_link_libraries(MyProgram ${QT_LIBRARIES} GL GLU glut) 
関連する問題