【发布时间】:2018-05-19 02:29:23
【问题描述】:
阅读a book on Yocto。转到以下页面,上面写着:
BitBake 提供了一种非常易于使用的方式来编写条件元数据。 它是通过一种称为覆盖的机制来完成的。
OVERRIDES 变量包含由冒号 (:) 分隔的值,并且 每个值都是我们要满足条件的一项。所以,如果我们有一个 以 arm 为条件的变量,并且 arm 处于 OVERRIDES 中,则 使用特定于 arm 的变量版本,而不是 无条件版本,如图:
OVERRIDES = "architecture:os:machine" TEST = "defaultvalue" TEST_os = "osspecificvalue" TEST_other = "othercondvalue"在本例中,
TEST将是osspecificvalue由于条件 操作系统位于OVERRIDES。
从这个解释中我不清楚TEST 是如何变成等于osspecificvalue 的。有人能解释一下吗?
【问题讨论】:
-
在
OVERRIDES中有os而没有other。TEST变量被TEST_os值覆盖。 -
@Nayfe 我无法理解
OVERRIDES变量的格式。architecture和machine的值是什么?它们如何影响os值? -
这只是一个随机值的例子。例如,您可以使用
bitbake -e <recipe> | grep ^OVERRIDES=查看默认值。您也可以阅读mega manual 中的定义,我发现它比bitbake 手册更清晰。