了解 bitbake 默认任务

Understanding bitbake default task

我正在尝试熟悉 yocto 以供工作,我正在通读“Embedded Linux Systems with The Yocto Project”,这是一个不错的资源,但我认为它无法解释大局观很好。

为了熟悉 bitbake 的工作原理,我创建了一个非常简单的层,其中包含一个名为 condtest 的方法,它只打印出一个变量:

LICENSE = "GPLv2+ & LGPLv2+"

VAR1 = "jumps over"
VAR2 = "${VAR1} the lazy dog. "
VAR1 = "falls on"
VAR3 = "The rain in spain ${VAR1} the plain."
VAR4 = "The quick brown fox ${VAR2}"

do_print() {

     echo VAR4: ${VAR4} 
}


addtask print

当我 运行 bitbake -c print condtest bitbake 只是按预期打印变量。我的困惑来自于我 运行 bitbake condtest 因为这会导致 bitbake 开始获取和编译一大堆包。我知道未指定 -c 时“构建”是默认任务,但由于我从未在我的食谱中定义 do_build,而且我从未继承任何 类,构建任务是 bitbake 运行宁?

总有一个暗示:

继承+=“基础”

其中包括 base.bbclass 和 conf/bitbake.conf 也包括在内。这些提供了您所依赖的许多默认值。在 local.conf 旁边放置一个空的 bitbake.conf 会做一些完全不同的事情(并且破坏很多东西但证明它做了多少)。