【发布时间】:2018-06-07 13:56:35
【问题描述】:
所以我在我创建的层中使用 .bbappend 文件,并且在该层中我还有一些要安装的其他本地文件。
问题是我不确定 Yocto 变量是什么,它正确地代表了我的 bbappend 文件所在的目录。像“THISDIR”这样的变量最终指向原始配方目录 - 而不是我层中的附加目录。在不放置某种绝对路径的情况下如何才能最好地做到这一点?
【问题讨论】:
标签: linux embedded-linux yocto bitbake
所以我在我创建的层中使用 .bbappend 文件,并且在该层中我还有一些要安装的其他本地文件。
问题是我不确定 Yocto 变量是什么,它正确地代表了我的 bbappend 文件所在的目录。像“THISDIR”这样的变量最终指向原始配方目录 - 而不是我层中的附加目录。在不放置某种绝对路径的情况下如何才能最好地做到这一点?
【问题讨论】:
标签: linux embedded-linux yocto bitbake
将您的文件复制到存在.bb 或.bbappend 文件的目录。并添加跟随线
hello.bbappend
FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI += "file://yourfile"
do_install_append(){
install -d ${D}/some-dest-dir
install -m 0644 ${S}/yourfile ${D}/some-dest-dir/
}
这里的THIS dir 表示您告诉bitbake 文件存在于.bb 或.bbappend 文件所在的目录中。
例如:meta-hellolayer
例子/
|_ 你好.c
|_ hello.bbappend
现在示例目录是 .bbappend 文件中的THIS 目录。
Note:确保您需要将您的layer path(meta-helolayer) 添加到build/conf/bblayer.conf
【讨论】:
e.g. meta-mycustom-layer ... |_ some-recipe.bbappend |_ myfile meta-original-layer ... |_ some-recipe.bb Bitbake 正在“meta-original-layer”树中搜索“myfile”,因为 THISDIR 反映的是该路径,而不是 bbappend 所在的路径。仅供参考,我正在运行 Morty。
install -m 0644 myfile ${D}/someinstalldir)。如果我改为设置“URI”然后从工作目录复制,我可以完成这项工作。使用我的原始方法执行此操作的正确方法是什么?