Cmake can';找不到Qt OpenGL库
我正在尝试使用Cmake can';找不到Qt OpenGL库,qt,opengl,qt4,cmake,Qt,Opengl,Qt4,Cmake,我正在尝试使用cmake编译一个项目。给我的指示是需要Qt4.8。从下载。编译并安装了Qt 4.8: mazdak@lnxamindai> 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_HEADER
cmake
编译一个项目。给我的指示是需要Qt4.8。从下载。编译并安装了Qt 4.8:
mazdak@lnxamindai> 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
但是,在编译项目时,我收到了以下错误:
root@lnxamindai> 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库吗?经过一些研究,我发现了这一点 配置Qt源代码时,我忘记指定要安装OpenGL模块和多媒体工具包。我只是自然而然地运行“configure”,没有任何选项,希望一切顺利
./configure --help
指定我需要-multimedia
和-opengl
。
当我使用正确的选项执行configure时,问题得到了解决
./configure -multimedia -opengl
请注意,多媒体套件需要安装gstreamer
这让我很困惑,难道不应该安装OpenGL库吗
它不是在抱怨OpenGL。它抱怨Qt的OpenGL模块QtOpenGL是另一回事。最有可能的是,您定制的Qt版本不包括QtOpenGL模块。您必须重新构建Qt,并特别注意启用QtOpenGL模块的构建。您还没有显示您的cmake文件……我猜您指的是CmakeList?请提供一个自包含的示例,而不是像这样臃肿的示例。sscce.org。另外,我不明白为什么你要使用OPENGL_INCLUDE_DIR(高级),而你应该只使用QT_INCLUDE。@Mazze不用担心他;他给人的印象是。。。苛刻(你可以在他的页面上读到他过去的评论,意识到这一直是他的语气,所以你不应该感到有针对性)。他要求你删除
CMakeLists.txt
中与QT无关的所有部分。@LaszloPapp只是因为你问OP“你为什么要为自己辩护?”如果OP对你的问题感到防御性,那么他们可能不想发布更多来澄清,这让双方都感到沮丧。我只是不确定在一个友好的网站上(即使是技术性的)是否有必要进行攻击。话虽如此,我还是明确表示,我不会对这件事发表比你更深入的评论,所以你可以自由地说最后一句话。我刚想出来,还以为是OpenGL。谢谢你!这就是问题所在。gstreamer依赖于声子。但也有其他可行的声子后端,如VLC。不过gstreamer可能是最好的选择。@Mazze所以您也需要使用-multimedia(而不仅仅是-opengl)来构建,以修复“Cmake找不到Qt-opengl库”的问题?
./configure -multimedia -opengl