BitBake中通过require引入的文件是否可传递继承bbclass?
Yocto BitBake继承关系传递问题解答
继承关系是可以传递的,不需要在exampleB.inc中再次声明inherit exampleC。
BitBake处理require关键字的逻辑很直接:它会把被引入的.inc文件内容原封不动地插入到当前文件的对应位置,相当于两个文件的代码合并成了一份。所以exampleA.inc里的inherit exampleC语句,会被当作exampleB.inc的一部分来执行,最终所有引入exampleB.inc的.bb/.bbappend文件都会自动继承exampleC类。
用你给出的例子具体说明:
exampleA.inc内容:inherit exampleC # 其他自定义配置代码exampleB.inc内容:require exampleA.inc # 其他自定义配置代码
当某个配方文件(比如test.bb)中使用require exampleB.inc时,BitBake实际执行的代码等价于:
inherit exampleC # exampleA.inc里的其他代码 # exampleB.inc里的其他代码
额外提一句:就算不小心在多个.inc文件里重复inherit同一个类也不用担心,BitBake会自动处理重复继承的情况,不会重复加载同一个类文件。
内容的提问来源于stack exchange,提问作者user3546593
相关产品推荐
相关产品推荐

