如何将专有库包含到 Yocto 生成的嵌入式 Linux 的工具链 (SDK) 中?

Ste*_*itz 4 sdk cross-compiling toolchain bitbake yocto

我正在寻找一个示例,展示如何将专有库包含到工具链中。

我们给图书馆打电话吧myLib。为此,我创建了一个食谱myLib.bb并添加了:

BBCLASSEXTEND = "native nativesdk"
Run Code Online (Sandbox Code Playgroud)

在我的“local.conf”中我添加了:

IMAGE_INSTALL_append = " myLib"
Run Code Online (Sandbox Code Playgroud)

构建 SDK 时:

$ bitbake myTarget -c populate_sdk
Run Code Online (Sandbox Code Playgroud)

它生成 SDK 的安装程序和两个清单文件。myLib仅包含在目标清单中,而不包含在主机上。如何包含myLib在主机系统上?


这个想法是,另一个人可以在他的系统上构建软件,而无需 Yocto 系统。只有使用工具链,他才能生成二进制文件,可以在评估板上传输和执行。

And*_*ers 6

只要你的图书馆myLib安装到映像中,它就应该是生成的 SDK 的一部分。您也说它是,至少作为目标清单的一部分。

确保您安装了库所需的头文件,然后您应该能够针对您的库进行交叉编译。

您需要myLib在开发人员构建机器上使用吗?否则,为什么要把它添加到零件中nativesdk?(即主机清单)。这适用于需要在主机上运行的应用程序,即交叉编译器、代码生成器等。

  • 好吧,那么你根本不需要添加nativesdk版本。只有当相关开发人员需要针对您的库为自己的桌面本地构建某些内容时,才需要 nativesdk 版本。目标版本是交叉编译所需的版本。 (3认同)