我需要在我为Minnowboard构建的yocto图像上运行一个软件应用程序。所需的主要配置是Qt5。
我能够根据最新的yocto指南为Minnowboard构建一个样本测试图像,通过添加带有MACHINE intel-corei7-64的meta-intel图层和EXTRA_IMAGE_FEATURES?=" dev-pkgs"
但是我在为我的yocto图像构建Qt支持时遇到了麻烦。我添加了meta-qt5图层并尝试编译meta-toolchain-qt5 ,以便根据此guide我可以在我的主机中设置Qt-creator来交叉编译Minnowboard 。
但是meta-toolchain-qt5会因许多错误而失败。
摘要:7个任务失败: /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 /家庭/ holoplot / Yocto /狭小/元QT5 /食谱-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
答案 0 :(得分:0)
从您的错误日志中。这似乎与配方没有问题,而是机器的规格;请尝试增加虚拟机的RAM量;
440589a074-R0 / GIT中/ SRC /核心/作业/ qthreadpooler.cpp |编译/home/holoplot/Yocto/poky/build/tmp/work/corei7-64-poky-linux/qt3d/5.8.0+gitAUTOINC+440589a074-r0/git/src/core/jobs/task.cpp
|虚拟内存耗尽:无法分配内存 |虚拟内存耗尽:无法分配内存
我建议双核处理器至少有4G的RAM;
|注意: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 /偏方SYSROOT OE_QMAKE_CC = x86_64-poky-linux-gcc -m64 -march = corei7 -mtune = corei
make -j4 16 MAKEFLAGS = -j 16
这里有两种可能性;
- 你设置用16个线程编译;如果是这种情况,请使用这些变量设置线程;
BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"
PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"
- 您目前正在使用16核机器。在Amazon EC2中,这种类型的M4.4xlarge实例具有64G RAM,这足以编译Yocto;