QtOpenGL を使用するソフトウェアをコンパイルしようとしていますが、-lGLU が存在しないため、リンク エラーが発生しました。cmake を使用しています。CMakeLists.txt ファイルの唯一の関連行は私には思えますfind_package(Qt4 REQUIRED)
システムは Linux 64 ビット、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
OSX 上の X11 で OpenGL を使用するには、OPENGL_glu_LIBRARY と OPENGL_gl_LIBRARY のキャッシュ値を変更する必要があります。
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