yocto receipe中的WORKDIR

use*_*586 4 yocto

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

S = "${WORKDIR}/git" 
Run Code Online (Sandbox Code Playgroud)

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

Saj*_*med 6

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

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

bitbake -e <recipe-name> | grep ^WORKDIR=
Run Code Online (Sandbox Code Playgroud)

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

bitbake -e recipe_name > env
Run Code Online (Sandbox Code Playgroud)


jav*_*vey 5

摘自Yocto项目参考手册

工作目录

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

WORKDIR目录的定义如下:

    ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
Run Code Online (Sandbox Code Playgroud)

实际目录取决于几件事:

   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
Run Code Online (Sandbox Code Playgroud)

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

    poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
Run Code Online (Sandbox Code Playgroud)

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

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