yocto配方中的WORKDIR

yocto配方中的WORKDIR,yocto,Yocto,当我打开bitbake文件(以.bb扩展名结尾)时,大多数文件都使用WORKDIR变量,如下所示 S = "${WORKDIR}/git" 您能告诉我此WORKDIR的定义位置吗。WORKDIR在以下文件中定义 bitbake/conf/bitbake.conf oe-core/meta/conf/bitbake.conf 来自Yocto项目参考手册 WORKDIR OpenEmbedded生成系统在其中生成配方的工作目录的路径名。该目录位于TMPDIR目录结构中,并且特定于正在生成的配方

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

S = "${WORKDIR}/git" 

您能告诉我此WORKDIR的定义位置吗。

WORKDIR在以下文件中定义

bitbake/conf/bitbake.conf
oe-core/meta/conf/bitbake.conf

来自Yocto项目参考手册

WORKDIR

OpenEmbedded生成系统在其中生成配方的工作目录的路径名。该目录位于TMPDIR目录结构中,并且特定于正在生成的配方及其所针对的系统

WORKDIR目录定义如下:

    ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
    poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
实际目录取决于以下几点:

   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。在这种情况下,构建系统用于构建包的工作目录如下所示:

    ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
    poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0


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

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

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

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