我对 Yocto 构建系统很陌生,我正在为一些我不明白的事情而苦苦挣扎。实际上,有什么区别:
取决于=“foo” 和 取决于=“foo-native”
我的意思是,我知道后缀 -native 表示组件 foo 将被构建为在本机主机上运行,但是对目标机器会产生什么后果?
将依赖项切换为原生依赖项会发生什么变化?
无论如何,一切都是在主机上预先构建和预先打包的,区别在哪里?
DEPENDS
是构建时间依赖项,允许您指定在构建配方之前需要存在哪些包。因此 DEPENDS = "foo"
会明确指出 foo 包需要成功构建并安装到我的包之前,开始它是 do_configure
(它可能只是 do_compile
的依赖项,但我认为它是 do_configure
)过程。使用 -native
表示 DEPENDS
表示包本机组件也需要存在。一个很好的例子是 Google protobuf包。它同时具有本机组件和目标组件,通常需要同时使用这两种组件。 protobuf-native 包将包括创建 protoc 编译器,这是构建需要
protoc
编译器生成内容的包所必需的。它还需要 protbuf包作为其运行时组件以及链接。 一般来说,可以说没有任何后果。目标上不存在我上面示例中的协议。这个答案可能取决于软件包,所以说它没有那么简单。一般来说,如果您需要本机工具来帮助您构建目标对象,请使用 -native
。