Dependencies Bitbake运行时与构建依赖关系

Dependencies Bitbake运行时与构建依赖关系,dependencies,bitbake,Dependencies,Bitbake,我很难理解bitbake的食谱。(我有一些写得很差的需要修改,我通常会阅读并理解整个机制,但遗憾的是我的日程安排很紧)。 你能帮我理解RDEPENDS和Dependes之间的区别吗。我阅读了参考资料,知道它们分别代表运行时依赖项和构建依赖项,但bitbake配方对其有什么影响? 据我所知,如果一个包a依赖于另一个包B,那么必须构建B并准备好让a能够构建。Bitbake与运行时无关,它只用于构建和部署包。那么区别是什么呢?正如您所说,bitbake与构建和部署 包,它需要部署所有可用的包 需要满足

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

正如您所说,bitbake与构建和部署 包,它需要部署所有可用的包 需要满足对目标系统的运行时依赖关系

如果你的食谱上说目标T
依赖于目标p,那说明
它必须在T之前建立P,因为T不可能是
没有P的建筑

如果你的食谱上说T
RDEPENDS
在p上,那说明 bitbake指出,如果需要,它必须将P部署到目标系统 部署T,因为没有P不能使用T

例如,如果没有C编译器,您无法构建
tar
,但是 您不需要C编译器来使用
tar
。您可以部署
tar
不部署C编译器。所以这是一个
依赖关系

另一方面,如果没有运行时C库,就不能使用
tar
。 如果部署了
tar
,则还必须部署运行时C库。 这是一个
RDEPEND

bitake的技术细节包括:

  • 如果T
    依赖于p,则T的
    do\u configure
    任务将依赖于p 在P的
    do\u populate\u sysroot
    任务上

  • 如果T
    RDEPENDS
    依赖于p,则T的
    do_build
    任务依赖于p
    do\u package\u write
    任务


谢谢您,先生!我现在明白了。关于您提到的技术细节:配方调用这些任务的方式是否有明确的顺序?这些任务(do_配置、do_构建等)是bitbake标准的一部分吗?是的,有一个定义的顺序,当然是正确的顺序-尽管您可以根据需要覆盖或扩展任何预定义行为,或者定义自己的任务并将其插入预定义行为之间。这是迄今为止我遇到的最好的答案!