8 查找临时源码

开发时,直接修改配方构建软件包所用的临时源码可能很有帮助。例如,编写补丁时 可能需要先做一些试验才能确定解决方案。首次构建软件包后,可以反复调整 Build Directory 中的源码,强制重新编译,并快速测试修改后的代码。 确定方案后,再以补丁形式保存变更。

构建期间,配方构建软件包所用的已解包临时源码位于 Build Directory 中,由 S 变量指定。以下是 OpenEmbedded-Core (OE-Core) 的 meta/conf/bitbake.conf 配置文件中定义的 S 默认值:

S = "${UNPACKDIR}/${BP}"

请注意,如果默认值不准确,许多配方会覆盖 S 变量。

备注

BP 表示配方的基础名称,由名称和版本组成:

BP = "${BPN}-${PV}"

这与 Git 获取器的解包位置一致,通常也与发行归档包解包后的内容一致, 即归档中包含一个与 ${BP} 值完全相同的目录。

配方解包目录( UNPACKDIR )的路径定义如下:

${WORKDIR}/sources

配方工作目录( WORKDIR )的路径又定义为:

${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}

实际目录取决于以下变量:

例如,假设源码目录的顶层文件夹名为 project,默认 Build Directory 为 project/build,机器目标系统为 qemux86-poky-linux,配方名称为 foo_1.3.0.bb。此时构建系统构建软件包所用的工作目录为:

project/build/tmp/work/qemux86-poky-linux/foo/1.3.0

备注

如果要反复测试本地修改,正确的方法是使用 devtool 工具。

要了解如何使用 devtool 添加、修改、升级配方等,请参阅本开发任务手册的 使用 devtool 命令行工具 一节。