我对Yocto构建系统还很陌生,我正在努力解决一些我不了解的问题。其实:
之间有什么区别DEPENDS =“ foo” 和 DEPENDS =“ foo-native”
我的意思是,我知道后缀-native表示将将组件foo构建为在本机主机上运行,但是对目标计算机有何影响?
将依赖关系切换为-native依赖关系会发生什么变化?
在任何情况下,所有内容都是在主机上预先构建和预包装的,区别在哪里?
答案 0 :(得分:1)
DEPENDS是构建时间相关性,它使您可以指定在构建配方之前需要存在哪些软件包。因此DEPENDS =“ foo”会明确声明 foo 软件包需要在我的软件包开始do_configure之前成功构建和安装(它可能只是do_compile的依赖项,但我认为它是do_configure)处理。对-DEPENDS使用-native表示软件包还必须存在本机组件。 Google protobuf 软件包就是一个很好的例子。它既具有本机组件又具有目标组件,并且您通常都需要同时使用它。 protobuf-native 软件包将包括创建协议编译器,以构建需要协议编译器生成内容的功能。它还需要 protbuf 软件包作为其运行时组件,并进行链接。
通常来说,没有任何后果。我上面的示例中的协议在目标上不存在。该答案可能取决于包装,因此要说没有没有那么简单。不过,通常,如果需要本机工具来帮助您构建目标对象,请使用 -native 。