Ulu*_*kai 5 openembedded bitbake yocto
我想重写配方 (bb) 中从 bbclass 继承的函数,但它不起作用 - 执行 bbclass(超类)的函数而不是新函数。
这是一个最小的(非)工作示例。
班级:
# myclass.bbclass
do_compile() {
echo MyClass
}
Run Code Online (Sandbox Code Playgroud)
食谱:
# myrecipe.bb
do_compile() {
echo MyRecipe
}
inherit myclass
Run Code Online (Sandbox Code Playgroud)
编译配方后,日志文件如下所示:
$ cat temp/log.do_compile
DEBUG: Executing shell function do_compile
MyClass
DEBUG: Shell function do_compile finished
Run Code Online (Sandbox Code Playgroud)
为什么不覆盖do_compile工作?
inherit在配方文件中的位置很重要。如果将其放在文件的开头(do_compile在(子类)配方中定义函数之前),它就可以工作。
食谱:
# myrecipe.bb
inherit myclass
do_compile() {
echo MyRecipe
}
Run Code Online (Sandbox Code Playgroud)
编译配方后,日志文件如下所示:
$ cat temp/log.do_compile
DEBUG: Executing shell function do_compile
MyRecipe
DEBUG: Shell function do_compile finished
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1675 次 |
| 最近记录: |