为什么在构建raspberrypi时yocto构建x86 sysroots?

时间:2016-02-25 11:33:11

标签: build raspberry-pi yocto

我通过Yocto制作了RaspberryPi最小图像。 我只是按照下面文章中的说明进行操作。

http://www.cnx-software.com/2013/07/05/12mb-minimal-image-for-raspberry-pi-using-the-yocto-project/

它为RaspberryPi和rpi sysroots提供了合适的图像。但是,它也使x86_64 sysroots。如果没有创建,那么构建时间会更短。

为什么它在生成ARM映像时生成x86_64二进制文件?

a   0.1
a   0.2
a   0.3
b   0.1
b   0.4
b   0.9
c   0.1
c   0.6

1 个答案:

答案 0 :(得分:3)

如您所见,为x86_64架构构建的所有软件包都以-native结尾。其他包需要这些本机包进行交叉编译。例如,您需要在x86_64上使用本机编译器来构建交叉编译器。此交叉编译器也必须是本机的,才能为目标编译二进制文件。对于某些库和工具(您在build/tmp/work/x86_64-linux/目录中看到的所有内容)也是如此。 因此,您为树莓图像选择的所有软件包都不是本机构建的,而只是Yocto交叉编译所需的软件包。

此外,Yocto仅在检测到更改时才构建包。 因此,你失去了#34;构建时间仅适用于自上次构建以来尚未构建或更改的软件包。

有关此主题的更多信息,请查看Yocto交叉工具链生成的功能原理[1]。

[1] https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#cross-development-toolchain-generation