C++ 是否可以通过包含头文件来实现运行时依赖性?
案例是:有一个称为A的ipk和另一个称为B的ipk。C++ 是否可以通过包含头文件来实现运行时依赖性?,c++,dependencies,bitbake,C++,Dependencies,Bitbake,案例是:有一个称为A的ipk和另一个称为B的ipk。 B对a具有运行时依赖性(根据a的bitbake配方) 但是,B中的源文件具有#include 这看起来像是一个构建依赖项,但我无法向自己解释为什么bitbake配方具有运行时依赖项。 非常感谢您提供的任何帮助,还可以链接到一些说明性教程。回想一下我的经历 如果T依赖于p,则T的do\u configure任务将取决于p 在P的do\u populate\u sysroot任务上 如果T依赖于p,则T的do_build任务依赖于p do\u
B对a具有运行时依赖性(根据a的bitbake配方)
但是,B中的源文件具有
#include
这看起来像是一个构建依赖项,但我无法向自己解释为什么bitbake配方具有运行时依赖项。
非常感谢您提供的任何帮助,还可以链接到一些说明性教程。回想一下我的经历
- 如果T依赖于p,则T的
任务将取决于p 在P的do\u configure
任务上do\u populate\u sysroot
- 如果T依赖于p,则T的
任务依赖于pdo_build
任务do\u package\u write
RDEPENDS
在你的A上意味着A已经
在构建B
时通过所有阶段,包括
是否填充系统根
。因此,任何导出到sysroot的头文件
在构建B时,将已经存在,并且构建时依赖关系将得到满足
如果B包含由A导出的头,则这是构建时依赖项。但那
不排除B也对a有运行时依赖关系。事实上通常是这样
如果B在运行时依赖于A,那么它也依赖于构建时
在上,正是因为(对于C/C++包)运行时依赖项通常
意味着建筑B需要A的标题
如果你的食谱只在A上指定BRDEPENDS
,那么它需要一点点
希望成功。如果碰巧是B的do\u configure
包括检查是否存在a标头,以及所有
游戏中的依赖关系使得B的do\u配置成为可能
要在A的do\u populate\u sysroot
完成之前运行,则
检查A标头可能会失败
为了使配方完全正确和安全,它应该同时说明这两个方面
Br依赖于A,B依赖于A