12

当我打开 bitbake 文件(以 .bb 扩展名结尾)时,大多数文件都使用 WORKDIR 变量,如下所示。

S = "${WORKDIR}/git" 

你能告诉我这个WORKDIR是在哪里定义的吗?

4

3 回答 3

10

来自 Yocto 项目参考手册

工作目录

OpenEmbedded 构建系统构建配方的工作目录的路径名。此目录位于 TMPDIR 目录结构中,并且特定于正在构建的配方和正在构建它的系统。

WORKDIR 目录定义如下:

    ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}

实际目录取决于几件事:

   TMPDIR: The top-level build output directory
   MULTIMACH_TARGET_SYS: The target system identifier
   PN: The recipe name
   EXTENDPE: The epoch - (if PE is not specified, which is usually the >case for most recipes, then EXTENDPE is blank)
   PV: The recipe version
   PR: The recipe revision

例如,假设源目录顶级文件夹名称为 poky,默认构建目录位于 poky/build,以及 qemux86-poky-linux 机器目标系统。此外,假设您的配方名为 foo_1.3.0-r0.bb。在这种情况下,构建系统用于构建包的工作目录如下:

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

http://www.yoctoproject.org/docs/2.1/ref-manual/ref-manual.html#var-WORKDIR

${TMPDIR} 将是 Yocto 构建目录中名为“tmp”的文件夹。

于 2016-07-12T20:53:40.677 回答
8

的默认值${WORKDIR}在 bitbake 变量中定义。但是你可以在食谱中改变它。它指向 bitbake 解包包的目录

${WORKDIR}您可以从 bitbake 环境中获取 的值

bitbake -e <recipe-name> | grep ^WORKDIR=

对于特定配方,您可以通过获取环境文件来获取所有变量的值:

bitbake -e recipe_name > env
于 2018-03-07T14:07:37.557 回答
1

WORKDIR 在以下文件中定义。

bitbake/conf/bitbake.conf
oe-core/meta/conf/bitbake.conf
于 2015-03-03T12:19:06.790 回答