小编use*_*796的帖子

BitBake 中的变量范围如何工作

我使用 Yocto,我想知道变量范围在 BitBake 配方中如何工作:

我的食谱看起来像:

SRC_URI += "file://something"

python do_fetch_prepend() {
    d.appendVar("SRC_URI", "https://www.bla.com/resource.tar")
    bb.error("SRC_URI_1: %s " % d.getVar("SRC_URI"))
    d.setVar("TEST_VAR", "test")
}

python do_unpack_append() {
    bb.error("SRC_URI_2: %s " % d.getVar("SRC_URI"))
    bb.error("TEST_VAR: %s " % d.getVar("TEST_VAR"))
}
Run Code Online (Sandbox Code Playgroud)

我跑bitbake -v -c unpack myrecipe

SRC_URI_1按预期打印:“file://something https://www.bla.com/resource.tar” SRC_URI_2打印为:“file://something” TEST_VAR打印为:无

看起来设置/更改数据存储 ( D) 中的变量仅在do_fetch. 这是预期的行为,因为我在文档中读到了D全局变量。

如果这是预期的行为,是否可以更改配方任务中的全局变量?

这个问题背后的原因是我需要另一个本机配方才能将额外的 URI 添加到SRC_URI. 我首先尝试了内联 Python 变量扩展,但 BitBake 解析器在将本机配方放入“本机目录”之前已经扩展了变量。因此,我尝试更改SRC_URI获取任务期间的操作,并“加载”我的本机配方,如下所示:

python () {
  d.appendVarFlag('do_parse', 'depends', 'my-recipe-native:do_populate_sysroot')
}
Run Code Online (Sandbox Code Playgroud)

在 中 …

variables scope bitbake yocto

3
推荐指数
1
解决办法
3121
查看次数

标签 统计

bitbake ×1

scope ×1

variables ×1

yocto ×1