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

时间:2017-08-25 13:37:31

标签: qt5 qt-creator cross-compiling yocto bitbake

我需要在我为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

1 个答案:

答案 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;