Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake can';找不到Qt OpenGL库_Qt_Opengl_Qt4_Cmake - Fatal编程技术网

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