2

yocto 项目使用 OpenEmbeded 来构建项目。我有一个包含一些动态库的食谱。do_rootfs 进程时,会将库复制到rootfs 目录,并打包成一个tar.bz2 球。但是生成的 tarball 中的动态库文件与食谱输入不同。我使用bitbake -v core-image-minimal来查看它如何复制文件的详细信息。但它只是给出一个简单的提示:libEGL.so->libEGL.so它只是告诉我文件名,我想知道源文件目录路径。那么源文件目录路径在哪里呢?提前致谢!

4

1 回答 1

4

请至少阅读快速入门文档以了解整个过程的大图。从配方构建的所有常规软件首先打包到 ipk(或 deb 或 rpm)包中,并且图像生成过程使用该包进行操作,因此它不是直接从某个地方复制。

软件包存储在位于build/tmp/deploy/ipk(或 deb 或 rpm)文件夹中的提要中。您可以使用标准工具检查它们(例如 ar 和 tar 用于 ipk 和 deb,或 rpm2cpio 与朋友一起用于 rpm)。

包内容来自packages-split包工作目录的目录,如build/tmp/work描述中所述。这反过来又来自packages同一工作目录的目录。反过来,它来自image目录(这是D变量的默认值),并且image目录包含配方安装的所有文件(如在do_install中)。当然,所有这些目录都是为了不同的目的而创建的,所以不仅仅是从一个地方复制到另一个地方,中间所做的事情在文件中的一个很好的注释中进行了package.bbclass描述。

在这种情况下还可能感兴趣的是 do_rootfs 任务日志,它通常存储在${WORKDIR}/temp/log.do_rootfs

于 2016-08-14T15:31:25.717 回答