embedded-linux - 如何在具有相同可见性的 bitbake 配方中声明自定义变量,例如 ${bindir}?
问题描述
我正在使用yocto bitbake构建自定义的 linux 映像。
我有 2 个bitbake
食谱。recipe-1
和recipe-2
。recipe-1
在 linux 输出图像中创建一个目录。目录名称是mydir
recipe-1
SUMMARY="Creates direcory"
LICENSE = "CLOSED"
FILES_${PN} += "${sysconfdir} /mydir"
do_install_append () {
install -d ${D}/mydir
}
让我们来recipe-2
。recipe-2
想要将一个文件myfile
称为mydir
recipe-2
SUMMARY="Wants to place a file in mydir created by recipe-1"
LICENSE = "CLOSED"
DEPENDS = "recipe-1"
SRC_URI = " file://myfile"
S = "${WORKDIR}"
do_install_append () {
install -m 600 ${WORKDIR}/myfile ${D}/mydir # bibake build complains that mydir is not found
}
问题:
在我recipe-2
之后提到的基本配方中recipe-1
,recipe-2
依赖于recipe-1
. 这很好,但 bitbake 构建抱怨mydir
无法识别。我明白这个问题。我需要mydir
让recipe-2
. 我怎样才能做到这一点?
问题:
我可以在我的配方构建系统中将 ,mydir
的输出recipe-1
设为全局变量吗?像 等的全局${bindir}
变量${datadir}
?如果我可以将其作为 building 的一部分recipe-1
,那么这可能是一个优雅的解决方案吗?
所以,我希望使用自定义变量让${mydir}
我们do_install_append
说recipe-2
?并在中做这样do_install_append
的事情recipe-2
。
install -m 600 ${WORKDIR}/myfile ${D}/${mydir}
可能吗?
解决方案
每个配方的安装目标都是独立的,并且在安装开始时始终为空,因此您需要在其中创建任何目录。其他食谱所做的没有任何后果。
如果要从单个位置设置 ${mydir},请将其放入一个类中,并使每个配方继承该类。
推荐阅读
- python - 如何在用户给出的输入中的两个字符之间放置一个空格?我的错误在哪里??(我是初学者
- spring-mvc - 如何在 htmlunit 中上传 MultipartFile?
- android - 通过 okHttp 套接字发送数据
- python-3.x - 将一行翻译成几行
- azure - 无法测试 Azure SAML 单一登录应用程序
- egit - IBM 将 Bus v10 与最新的 EGit 集成
- javascript - Magic-FN 之类的普通键盘绑定
- django - 使用 nginx 和 gunicorn 在 AWS 上出现 504 超时
- go - 使用 http2,每个传入流是否在单独的 goroutine 中运行>
- javascript - 如何根据javascript中的变量更新对象中的属性