C++ 在Yocto中使用Cmake构建Qt5
我们正在Yocto/Bitbake中使用用于Cortex ARM 9的CMake交叉编译Qt5应用程序 无论我做什么,我都无法让Cmake找到所需的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
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
不幸的是,我不确定两件事:
qt5
包之前或者与我的错误配方同时构建?依赖关系不应该解决这个问题吗?我还尝试使用DEPENDS
而不是RDEPENDS
,但这没有什么区别查找时-命名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”点,即不理解为什么依赖包是并行构建的。