考虑到 yocto 给予开发人员的所有自由,我有一个问题。 我想让 my_file.inc 仅适用于一个特定元层中的食谱。我知道,例如,在 local.conf 中使用 INHERIT 关键字将使 my_class.bbclass 文件对每个配方全局可用。
添加以下内容是一个好习惯吗:
require my_file.inc
在layer.conf里面?或者我应该将my_file.inc更改为my_file.bbclass,并将INHERIT =“my_file.bbclass”添加到layer.conf? 还有其他可能性吗?
最佳答案
即使看起来可行,但从技术上讲,您的两种方法都不是完全正确的。关键点是,所有 .conf
文件都会首先被解析,并且它们包含的所有内容在整个构建过程中都是全局可见的。因此,如果您通过 layer.conf
文件添加某些内容,它不会通过意外的位置被拉入,它也不会仅限于该层,因此可能会导致其他位置的损坏。
虽然我没有一个真正好的、干净的解决方案,但也许以下内容可以帮助您:
您可以让自定义配方对 DISTRO_FEATURES
或 MACHINE_FEATURES
中的某些关键字使用react。然后您可以创建一个两阶段的方法:
在
local.conf
(或您的MACHINE
、DISTRO
或任何配置)中添加所需的关键字让食谱对其使用react。如果您在多个地方需要该机制,那么将其倒入层带来的
.bbclass
中可能会很有用,并且您可以将其拉入相应的配方中。
这样效果就得到了正确的控制。
关于layer - 在yocto中的layer.conf中使用require,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55297773/