Yocto 中变量的解析是如何工作的?

How does the parsing of variables in Yocto work?

有一些变量我只是使用而不知道它的作用。有人可以解释 Yocto 中所有这些解析背后的逻辑吗?

下划线有什么作用?除了 _append_pn 之外还有哪些可用参数?

PACKAGECONFIG_append_pn-packagename = " packagename"

PREFERRED_VERSION_linux-imx_mx6 = "3.10.17"

SRC_URI_append_toolchain-clang = " file://0004-Remove-clang-unsupported-compiler-flags.patch "

EXTRA_OECONF_append_arm = " --enable-fpm=arm"

这个怎么样?我知道这样添加是单选一个包,但是怎么操作呢?

LICENSE_FLAGS_WHITELIST_append = " commerical_packagename"

有人还提到了一些对他们有用的奇怪的东西:

IMAGE_INSTALL_append_machine1 += " package1"

文档很好地涵盖了这一点:https://www.yoctoproject.org/docs/latest/bitbake-user-manual/bitbake-user-manual.html#basic-syntax

较长的版本是 _ 引入了覆盖,这是一种表达 "do something special" 而不仅仅是分配的方式。

有些是append、prepend等操作。 富 = “1” FOO_append = "2"

FOO 现在是“12”,因为 2 附加到 1。

(_prepend 符合您的预期)

_remove 可用于从以空格分隔的列表中删除项目。

  FOO = "1 2 3"
  FOO_remove = "2"

FOO 现在是“1 3”。

pn_[foo]是对特定配方名称的覆盖(历史命名,是包名,但实际上是指配方)。所以你的 local.conf 可以做:

EXTRA_OEMAKE_pn-foo = "bar"

您刚刚为 foo 配方设置了 EXTRA_OEMAKE,而且只是 foo 配方。

还有其他覆盖。这些架构都有覆盖,因此 _arm _x86 _mips 等指定分配特定于这些架构。