【问题标题】:function in recipe not overridden配方中的功能未被覆盖
【发布时间】:2017-08-19 23:42:57
【问题描述】:

我想覆盖从 bbclass 继承的配方 (bb) 中的一个函数,但它不起作用 - 来自 bbclass(超类)的函数被执行而不是新函数。

这是一个最小(非)工作示例。

类:

# myclass.bbclass

do_compile() {
    echo MyClass
}

食谱:

# myrecipe.bb

do_compile() {
    echo MyRecipe
}

inherit myclass

编译配方后,日志文件如下所示:

$ cat temp/log.do_compile
DEBUG: Executing shell function do_compile
MyClass
DEBUG: Shell function do_compile finished

为什么覆盖do_compile 不起作用?

【问题讨论】:

    标签: yocto bitbake openembedded


    【解决方案1】:

    inherit 在配方文件中的位置很重要。如果你把它放在文件的开头(在(子类)配方中定义函数do_compile之前),它可以工作。

    食谱:

    # myrecipe.bb
    
    inherit myclass
    
    do_compile() {
        echo MyRecipe
    }
    

    编译配方后,日志文件如下所示:

    $ cat temp/log.do_compile
    DEBUG: Executing shell function do_compile
    MyRecipe
    DEBUG: Shell function do_compile finished
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 2015-10-06
      • 1970-01-01
      • 2021-08-12
      相关资源
      最近更新 更多