gpt4 book ai didi

yocto - 在 BitBake 中使用条件语法(覆盖)

转载 作者:行者123 更新时间:2023-12-03 19:35:18 25 4
gpt4 key购买 nike

阅读a book on Yocto .到了下面的页面,上面写着:

BitBake provides a very easy-to-use way to write conditional metadata. It is done by a mechanism called overrides.

The OVERRIDES variable contains values separated by colons (:), and each value is an item we want to satisfy conditions. So, if we have a variable that is conditional on arm, and arm is in OVERRIDES, then the version of the variable that is specific to arm is used rather than the non-conditional version, as shown:

OVERRIDES = "architecture:os:machine"
TEST = "defaultvalue"
TEST_os = "osspecificvalue"
TEST_other = "othercondvalue"

In this example, TEST will be osspecificvalue due to the condition of os being in OVERRIDES.



我从这个解释中不清楚 TEST 是怎么做的变得等于 osspecificvalue .有人能解释一下吗?

最佳答案

Bitbake 基于 Python 的 MutableMapping 实现了自己的字典数据结构在 lib/bb/data_smart.py .目标是创建一个具有更大灵活性的字典,因为可以根据特定标识符覆盖“键,值”对中的每个值。

如果您查看此字典中的变量是如何设置的,您将看到数据存储允许基于覆盖标识符列表“覆盖”变量。这些标识符应附加下划线,就像在您的“TEST_os”示例中一样。

在您引用的情况下,“其他”标识符不在 OVERRIDES 列表中,因此此“智能字典”不会用“othercondvalue”覆盖 TEST 的值。但是,由于“os”标识符在 OVERRIDES 列表中,因此 TEST 的值确实被值“osspecificvalue”覆盖了。

我强烈建议通读 DataSmart 类,因为这是一个非常简单的解释,但希望它有所帮助。

另外,请参阅 OVERRIDES 的 BitBake 手册条目想要查询更多的信息。

关于yocto - 在 BitBake 中使用条件语法(覆盖),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50225540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com