Yocto配方中任务修改变量报错‘VAR: not found’求助
Yocto配方变量赋值报错“VAR: not found”的原因及修复
错误原因
你遇到的问题是shell脚本语法错误导致的:Yocto的do_configure()任务会被解析为shell代码执行,而shell中变量赋值的规则是等号=前后不能有空格。你写的MY_CUSTOM_VAR = "new_value"里,=前后的空格会让shell把MY_CUSTOM_VAR当成独立命令去执行,系统找不到这个命令,因此抛出“not found”错误。
修复代码
把赋值语句的空格去掉即可:
MY_CUSTOM_VAR = "some_value" do_configure() { echo "Configuring with MY_CUSTOM_VAR=${MY_CUSTOM_VAR}" MY_CUSTOM_VAR="new_value" # 移除等号前后的空格 echo "Modified MY_CUSTOM_VAR: ${MY_CUSTOM_VAR}" }
额外说明
需要注意:这里修改的是do_configure()任务所在shell环境内的变量,不会改变Yocto全局的MY_CUSTOM_VAR配方变量。如果需要修改全局变量,要使用Yocto的变量赋值语法(如在任务外直接赋值),或通过Python API(比如bb.setvar("MY_CUSTOM_VAR", "new_value"))在任务中操作。
内容的提问来源于stack exchange,提问作者Andrea Giga Ravalli
相关产品推荐
相关产品推荐

