【问题标题】:Yocto - Can't build library for host SDKYocto - 无法为主机 SDK 构建库
【发布时间】:2019-08-14 21:41:34
【问题描述】:

我为第三方库制作了自定义配方。 它包含:

BBCLASSEXTEND =+ "native nativesdk"

配方构建了一个静态库,依赖于virtual/kernel 并复制了一些标头 - 相对简单。

我正在尝试将它安装到主机 SDK 中以进行交叉编译,但我遇到了一些问题。

当我尝试添加时:

TOOLCHAIN_HOST_TASK_append = " nativesdk-<recipe>"

... 到 local.conf 并运行 bitbake core-image-weston -c populate_sdk,BitBake 完成,但主机 SDK 中没有标头和库(对于我的主机架构)。

当我尝试添加时:

TOOLCHAIN_HOST_TASK_append = " <package>-staticdev"

...我收到以下错误:

package <package>-staticdev-1.11.0-r0.aarch64 does not have a compatible architecture

任何帮助将不胜感激。

【问题讨论】:

  • 我不确定,你的配方取决于你的构建机器内核?不应该在TOOLCHAIN_TARGET_TASK中添加,而是基于目标内核吗?
  • @Nayfe 也许我误解了。 bb 文件包含 DEPENDS = "virtual/kernel",因为它在编译期间依赖于 Linux 头文件。所以它不依赖于“构建机器内核”,它只依赖于它所构建的目标的内核。至少我认为它是这样做的。
  • 您确定需要native 食谱吗?你编译的东西会在构建机器上运行吗? (我不是在谈论交叉编译)?也许你只需要TOOLCHAIN_TARGET_TASK_append = " &lt;package&gt;-staticdev &lt;package&gt;-dev"
  • @Nayfe 谢谢,我刚刚度过了一个愚蠢的时刻,你是完全正确的。如果您根据最后一条评论创建答案,我很乐意接受。

标签: embedded yocto


【解决方案1】:

由于您不需要 native 部分配方以在 host (build machine) 上运行某些东西,但 target 部分,您应该添加以下行以将其添加到 SDK

 TOOLCHAIN_TARGET_TASK_append = " <package>-staticdev <package>-dev"

【讨论】:

    猜你喜欢
    • 2019-08-05
    • 1970-01-01
    • 2020-07-28
    • 2018-07-24
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    相关资源
    最近更新 更多