2013-12-19 3 views
-1

Я пытаюсь скомпилировать проект, используя cmake. Мне было дано указание, что Qt 4.8 необходим. Загрузите его с qt-project.org/downloads. Составитель и установлен Qt 4.8:Cmake не может найти Qt OpenGL library

[email protected]> qmake -query 
QT_INSTALL_PREFIX:/usr/local/Trolltech/Qt-4.8.5 
QT_INSTALL_DATA:/usr/local/Trolltech/Qt-4.8.5 
QT_INSTALL_DOCS:/usr/local/Trolltech/Qt-4.8.5/doc 
QT_INSTALL_HEADERS:/usr/local/Trolltech/Qt-4.8.5/include 
QT_INSTALL_LIBS:/usr/local/Trolltech/Qt-4.8.5/lib 
QT_INSTALL_BINS:/usr/local/Trolltech/Qt-4.8.5/bin 
QT_INSTALL_PLUGINS:/usr/local/Trolltech/Qt-4.8.5/plugins 
QT_INSTALL_IMPORTS:/usr/local/Trolltech/Qt-4.8.5/imports 
QT_INSTALL_TRANSLATIONS:/usr/local/Trolltech/Qt-4.8.5/translations 
QT_INSTALL_CONFIGURATION:/etc/xdg 
QT_INSTALL_EXAMPLES:/usr/local/Trolltech/Qt-4.8.5/examples 
QT_INSTALL_DEMOS:/usr/local/Trolltech/Qt-4.8.5/demos 
QMAKE_MKSPECS:/usr/local/Trolltech/Qt-4.8.5/mkspecs 
QMAKE_VERSION:2.01a 
QT_VERSION:4.8.5 

Однако при составлении проекта я получил следующее сообщение об ошибке:

[email protected]> cmake .  
    -- Setting flags for GNU GCC 
    -- REQUIRED_VARS (missing: QTMOBILITY_INCLUDE_DIR QTMOBILITY_MULTIMEDIAKIT_INCLUDE_DIR QTMOBILITY_MULTIMEDIAKIT_LIBRARY VERSION_VAR QTMOBILITY_VERSION) 
    Qt QTOPENGL library not found. 
    -- Buiding ManyEarsLib Library... 
    -- Buiding RTAudio Library... 
    -- Found jack: /usr/lib/libjack.so 
    ALSA lib : -lasound -lpthread 
    Qt QTOPENGL library not found. 
    CMake Error: The following variables are used in this project, but they are set to NOTFOUND. 
    Please set them or make sure they are set and tested correctly in the CMake files: 
    OPENGL_INCLUDE_DIR (ADVANCED) 
     used as include directory in directory /home/mazdak/dev/ManyEars/manyears/QtGUI 
    QTMOBILITY_MULTIMEDIAKIT_LIBRARY (ADVANCED) 
     linked by target "ManyEars" in directory /home/mazdak/dev/ManyEars/manyears/QtGUI 

    -- Configuring incomplete, errors occurred! 

CMakeLists.txt:

(...) 

IF (NOT MANYEARS_GUI_DISABLED) 

    SET(QT_USE_QTNETWORK TRUE) 
    SET(QT_USE_QTSVG TRUE) 
    SET(QT_USE_QTXML TRUE) 
    SET(QT_USE_QTSCRIPT TRUE) 
    SET(QT_USE_QTOPENGL TRUE) 
    SET(QT_USE_QTMULTIMEDIA TRUE) 

    find_package(QtMobility COMPONENTS MultimediaKit) 
    find_package(Qt4 4.8.0 QUIET) 

    if (QTMOBILITY_FOUND) 
     MESSAGE("QT_MOBILITY_INCLUDE_DIR : ${QTMOBILITY_INCLUDE_DIRS} QT_MOBILITY_LIB: ${QTMOBILITY_LIBRARIES}") 
    ENDIF (QTMOBILITY_FOUND) 


    if(QT4_FOUND AND (QT_QTMULTIMEDIA_FOUND OR QTMOBILITY_FOUND)) 
    include(${QT_USE_FILE}) 
    else(QT4_FOUND AND (QT_QTMULTIMEDIA_FOUND OR QTMOBILITY_FOUND)) 
     MESSAGE("WARNING : ManyEars GUI will not be compiled because Qt4 not found or obsolete. You need Qt 4.8 or higher.Try using the latest QtSDK from http://qt-project.org") 
     MESSAGE("DEBUG: QT4_FOUND: ${QT4_FOUND} QT_MULTIMEDIA_FOUND: ${QT_QTMULTIMEDIA_FOUND} QT_MOBILITY_FOUND: ${QTMOBILITY_FOUND}") 
     SET(MANYEARS_GUI_DISABLED TRUE) 
    endif(QT4_FOUND AND (QT_QTMULTIMEDIA_FOUND OR QTMOBILITY_FOUND)) 

ELSE (NOT MANYEARS_GUI_DISABLED) 
    MESSAGE("ManyEars GUI disabled.") 
ENDIF (NOT MANYEARS_GUI_DISABLED) 


#Files excluded from package 
set(CPACK_SOURCE_IGNORE_FILES 
    "build" 
    "bin" 
    ${CPACK_SOURCE_IGNORE_FILES} 
    ".svn" 
) 



#include files 
(...) 

IF (UNIX) 

     ######################################### 
     # Packaging stuff for sources (All UNIX) 
     ######################################### 
     SET(CPACK_SOURCE_GENERATOR "TGZ") 
      SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/COPYING.TXT") 
     SET(CPACK_PACKAGE_NAME "ManyEars") 
     SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ManyEars") 
     SET(CPACK_PACKAGE_VENDOR "Francois Grondin, Dominic Letourneau") 
      SET(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.TXT") 
     SET(CPACK_PACKAGE_CONTACT "blablablabla") 


    (...) 

ENDIF(UNIX) 

(...) 

INCLUDE(CPack) 

Это сбивает с толку меня, не должен» • Будет ли установлена ​​библиотека OpenGL?

+0

Вы не показали свой файл cmake ... – lpapp

+0

И этим я предполагаю, что вы имеете в виду Cmakelists? – Mazze

+0

Пожалуйста, предоставьте автономный пример, а не раздутый. sscce.org. Кроме того, я не понимаю, почему вы используете OPENGL_INCLUDE_DIR (ADVANCED), когда вы должны использовать только QT_INCLUDES. – lpapp

ответ

2

This is confusing me, shouldn't the OpenGL library be installed?

Не жалуется на OpenGL. Он жалуется на Qt OpenGL-модуль QtOpenGL, это совсем другое. Скорее всего, ваша пользовательская сборка Qt не включает модуль QtOpenGL. Вы должны вернуться к построению Qt и проявлять особую осторожность, чтобы вы включили сборку модуля QtOpenGL.

+0

Просто понял, думал, что это OpenGL. Спасибо хоть! это был вопрос. – Mazze

-1

После некоторых исследований выяснилось, что I needed to install some development packages if I was compiling from the source code.

apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev 

При настройке исходного кода Qt я забыл указать, что я хотел установить модуль OpenGL и набор мультимедиа. Я просто естественно «настраивал» без каких-либо опций и надеялся на лучшее.

./configure --help 

Указывает, что мне нужно -multimedia и -opengl. Когда я выполнил настройку с правильными параметрами, проблема была решена.

./configure -multimedia -opengl 

Обратите внимание, что комплект мультимедиа требует установки gstreamer.

+1

Зависимость gstreamer от Phonon. Но есть и другие жизнеспособные Phonon-Backends, такие как VLC. Тем не менее gstreamer, вероятно, лучший вариант. – datenwolf

+0

@Mazze Итак, вам нужно построить с помощью -multimedia (а не только -opengl), чтобы исправить «Cmake не может найти Qt OpenGL-библиотеку»? –

Смежные вопросы