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
C++ 在Yocto中使用Cmake构建Qt5_C++_Qt_Cmake_Embedded Linux_Yocto - Fatal编程技术网

C++ 在Yocto中使用Cmake构建Qt5

C++ 在Yocto中使用Cmake构建Qt5,c++,qt,cmake,embedded-linux,yocto,C++,Qt,Cmake,Embedded Linux,Yocto,我们正在Yocto/Bitbake中使用用于Cortex ARM 9的CMake交叉编译Qt5应用程序 无论我做什么,我都无法让Cmake找到所需的Qt5Config.Cmakeconfig文件 错误消息众所周知: CMake Error at CMakeLists.txt:71 (find_package): By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find

我们正在Yocto/Bitbake中使用用于Cortex ARM 9的CMake交叉编译Qt5应用程序

无论我做什么,我都无法让Cmake找到所需的
Qt5Config.Cmake
config文件

错误消息众所周知:

 CMake Error at CMakeLists.txt:71 (find_package):
 By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
 asked CMake to find a package configuration file provided by "Qt5", but
 CMake did not find one.

 Could not find a package configuration file provided by "Qt5" with any of
 the following names:

     Qt5Config.cmake
     qt5-config.cmake

 Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
 to a directory containing one of the above files.  If "Qt5" provides a
 separate development package or SDK, be sure it has been installed.

 -- Configuring incomplete, errors occurred!
到目前为止,情况似乎还不错。我依赖Qt并通过以下方式使用Cmake:

RDEPENDS_${PN} += " qtconnectivity "
inherit pkgconfig cmake
不幸的是,我不确定两件事:

  • 当我构建Yocto(在2个内核上)时,为什么bitbake在构建
    qt5
    包之前或者与我的错误配方同时构建?依赖关系不应该解决这个问题吗?我还尝试使用
    DEPENDS
    而不是
    RDEPENDS
    ,但这没有什么区别

  • 我不知道安装的是哪个sysroot Qt。当我做
    查找时-命名Qt5Config.cmake
    我发现很多地方。其中一个地方看起来比其他地方更有希望。它是:
    /tmp/sysroots components/cortexa9hf-neon-mx6qdl/qtbase/usr/lib/cmake/Qt5/Qt5Config.cmake
    。但是,Qt库不应该在“我的食谱”的sysroot中吗

  • 所以,毕竟,我试图让
    CMake
    知道
    Qt5Config.CMake
    的位置。我试着通过设置

    export Qt5_DIR = "/home/vagrant/build/tmp/sysroots-components/cortexa9hf-neon-mx6qdl/qtbase/usr/lib/cmake/Qt5/"
    
    在配方中,可以使用CMake输出确认它知道路径
    Qt5\u DIR
    。在CMake中设置路径(使用
    设置(Qt5\u DIR…
    )也没有帮助

    道路仍然未知。即使我现在很高兴让CMake知道Qt5在哪里,但这似乎是一个错误的配置,因为我认为我的配方应该自动知道Qt


    我还能试什么?

    终于有时间回答了。我有一段时间也遇到了同样的问题,发现了bitbake类


    使用该类代替
    cmake
    应该填充在Yocto项目中使用Qt5和cmake所需的所有必要标志。

    非常感谢@mascoj!这很好地解决了问题。cmake_qt5配方还展示了如何使用
    RDEPENDS_prepend
    依赖项。我不知道这一点——这解决了我的“1”点,即不理解为什么依赖包是并行构建的。