如何配置 META-QT5 层构建 META-TOOLCHAIN-QT 交叉编译 Yocto for MINNOWBOARD

How to configure META-QT5 layer to build META-TOOLCHAIN-QT to cross compile Yocto for MINNOWBOARD

我需要 运行 在我为 Minnowboard 构建的 yocto 图像之上安装一个软件应用程序。需要的主要配置是Qt5。

我能够根据最新的 yocto 指南通过使用 MACHINE intel-corei7-64 和 EXTRA_IMAGE_FEATURES 添加 meta-intel 层为 Minnowboard 构建示例测试图像?= "dev-pkgs"

但是我在为我的 yocto 图像构建 Qt 支持时遇到了问题。我添加了 meta-qt5 layer and tried to compile for meta-toolchain-qt5 so that according to this guide 我可以在我的主机中设置 Qt-creator 以交叉编译 Minnowboard。

但是 meta-toolchain-qt5 一直失败并出现许多错误。

Summary: 7 tasks failed: /home/holoplot/Yocto/poky/meta-qt5/recipes-qt/qt5/qtwebsockets_git.bb:do_compile /home/holoplot/Yocto/poky/meta-qt5/recipes-qt/qt5/qtenginio_git.bb:do_install /home/holoplot/Yocto/poky/meta-qt5/recipes-qt/qt5/qtgraphicaleffects_git.bb:do_compile /home/holoplot/Yocto/poky/meta-qt5/recipes-qt/qt5/qt3d_git.bb:do_compile /home/holoplot/Yocto/poky/meta-qt5/recipes-qt/qt5/qtconnectivity_git.bb:do_compile /home/holoplot/Yocto/poky/meta-qt5/recipes-qt/qt5/qtquickcontrols2_git.bb:do_compile /home/holoplot/Yocto/poky/meta-qt5/recipes-qt/qt5/qtsensors_git.bb:do_compile

ATM,我正在为所有图层使用 PYRO 分支。我添加了以下层 (openembedded-core/meta , meta-openembedded/meta-oe , meta-openembedded/meta-ruby , meta-openembedded/meta-multimedia 希望 meta-toolchain-qt5 构建成功,但仍然失败。

是否有一个稳定的分支可用于为 minnowboard 成功构建 meta-toolchain-qt5,或者我是否应该编辑 qt 配方以避免构建上述包导致错误?

非常感谢您的支持。谢谢!

仅供参考:我的软件具有以下依赖项。

linux-vdso.so.1 libnetsnmp.so.30 libQt5Network.so.5 libQt5Network.so.5 libQt5Core.so.5 libpthread.so.0 libstdc++.so.6 libstdc++.so.6 libm.so.6 libgcc_s.so.1 libc.so.6 libz.so.1 libicui18n.so.56 libicuuc.so.56 libicudata.so.56 libdl.so.2
libgthread-2.0.so.0 libglib-2.0.so.0 libglib-2.0.so.0 libpcre.so.3

来自您的错误日志。这似乎与配方没有问题,而是您机器的规格;请尝试增加虚拟机的 RAM 数量;

440589a074-r0/git/src/core/jobs/qthreadpooler.cpp | compiling /home/holoplot/Yocto/poky/build/tmp/work/corei7-64-poky-linux/qt3d/5.8.0+gitAUTOINC+440589a074-r0/git/src/core/jobs/task.cpp

| virtual memory exhausted: Cannot allocate memory | virtual memory exhausted: Cannot allocate memory

我建议双核处理器至少有 4G 内存;

| NOTE: make -j 16 MAKEFLAGS=-j 16 OE_QMAKE_COMPILER=x86_64-poky-linux-gcc -m64 -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2 --sysroot=/home/holoplot/Yocto/poky/build/tmp/work/corei7-64-poky-linux/qtgraphicaleffects/5.8.0+gitAUTOINC+1583bb5569-r0/recipe-sysroot OE_QMAKE_CC=x86_64-poky-linux-gcc -m64 -march=corei7 -mtune=corei

make -j4 16 MAKEFLAGS = -j 16这里有2种可能;

-你设置了16个线程编译;如果是这种情况,请使用这些变量设置线程;

BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"
PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"

-您目前使用的是16核机器。在Amazon EC2中,该类型的M4.4xlarge实例有64G RAM,编译Yocto绰绰有余;