28

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

4

1 回答 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 DEPENDSP上,则Tdo_configure任务依赖于Pdo_populate_sysroot任务。

  • 如果T RDEPENDSP上,则Tdo_build任务将依赖于Pdo_package_write任务。

于 2015-06-15T14:17:11.803 回答