Bitbake 运行时与构建依赖关系

Bitbake runtime vs build dependency

我无法理解 bitbake 食谱。 (我有一些写得不好的地方需要修改,我通常会阅读并理解整个机制,但遗憾的是我的时间很紧)。 你能帮我理解 RDEPENDS 和 DEPENDS 之间的区别吗?我阅读了参考资料,我知道它们分别代表运行时依赖性和构建依赖性,但是在 bitbake 配方中对它有什么影响? 据我了解,如果包 A 依赖于另一个 B,则必须构建 B 并准备好启用 A 来构建。 Bitbake 与运行时无关,它仅用于构建和部署包。那么有什么区别呢?

如您所说,bitbake 关注构建 和部署 包,它需要部署所有的包 需要满足目标系统上的运行时依赖性。

如果你的食谱说目标 T DEPENDS 在目标 P 上,那就说明 bitbake 它必须在 T 之前构建 P,因为 T 不能 建成 没有 P

如果你的食谱说 T RDEPENDS on P,那就说明 bitbake 如果它必须部署 P 到目标系统 部署 T,因为 T 不能 used 没有 P.

例如,没有 C 编译器就无法构建 tar,但是 你不需要 C 编译器来使用 tar。您可以部署 tar 无需部署 C 编译器。所以这是 DEPEND.

另一方面,如果没有运行时 C 库,则无法使用 tar。 如果部署了tar,则还必须部署运行时C 库。 所以这是一个 RDEPEND.

bitake 的技术细节是:

  • 如果 T DEPENDSPTdo_configure任务依赖 关于 Pdo_populate_sysroot 任务。

  • 如果 T RDEPENDSPTdo_build任务依赖于Pdo_package_write任务。