我无法理解 bitbake 食谱。(我有一些写得不好的地方需要修改,我通常会阅读并理解整个机制,但遗憾的是我的日程安排很紧)。你能帮我理解RDEPENDS和DEPENDS之间的区别吗?我阅读了参考资料,我知道它们分别代表运行时依赖和构建依赖,但是在 bitbake 配方中对它有什么影响?据我了解,如果一个包 A 依赖于另一个 B,则必须构建 B 并准备好使 A 能够构建。Bitbake 与运行时无关,它仅用于构建和部署包。那么区别是什么呢?
问问题
12756 次
1 回答
58
正如您所说,bitbake 关注构建和部署包,它需要部署满足目标系统运行时依赖关系所需的所有包。
如果您的配方说目标T DEPENDS
上的目标P,这告诉 bitbake 它必须在T之前构建P,因为没有P就无法
构建T。
如果你的配方说T RDEPENDS
on P,这告诉 bitbake如果它部署了T ,它必须将P部署到目标系统,因为没有P就不能使用T。
例如,您无法在tar
没有 C 编译器的情况下进行构建,但您不需要 C 编译器来使用tar
. 您可以tar
在不部署 C 编译器的情况下进行部署。所以这是一个DEPEND
.
另一方面,如果tar
没有运行时 C 库,您将无法使用。如果tar
已部署,则还必须部署运行时 C 库。所以这是一个RDEPEND
.
bitake的技术细节是:
如果T
DEPENDS
在P上,则T的do_configure
任务依赖于P的do_populate_sysroot
任务。如果T
RDEPENDS
在P上,则T的do_build
任务将依赖于P的do_package_write
任务。
于 2015-06-15T14:17:11.803 回答