【问题标题】:How to exclude packages when populate_sdk in YoctoYocto中populate_sdk时如何排除包
【发布时间】:2019-01-16 19:35:10
【问题描述】:

我有一个可以成功构建的 Yocto bitbake 图像配方。

但是,使用-c populate_sdk 命令生成 SDK 时,相同的图像配方会失败。

该错误似乎是由于混合了 32 位和 64 位版本的库引起的,这在仅使用二进制文件构建图像时很好,但在填充 SDK 根 fs 时头文件相互冲突:

Running transaction check
Transaction check succeeded.
Running transaction test
Error: Transaction check error:
  file /usr/bin/curl-config from install of lib32-curl-dev-7.53.1-r0.cortexa7hf_neon_vfpv4 conflicts with file from package curl-dev-7.53.1-r0.aarch64
  file /usr/include/nettle/version.h from install of lib32-nettle-dev-3.3-r0.cortexa7hf_neon_vfpv4 conflicts with file from package nettle-dev-3.3-r0.aarch64
  file /usr/include/nettle/nettle-stdint.h from install of lib32-nettle-dev-3.3-r0.cortexa7hf_neon_vfpv4 conflicts with file from package nettle-dev-3.3-r0.aarch64

在执行-c populate_sdk 时排除 32 位版本的库(配方)而不完全从生产映像中排除它们的最佳方法是什么?

【问题讨论】:

    标签: yocto bitbake


    【解决方案1】:

    您可以通过从 TOOLCHAIN_TARGET_TASK 变量中删除目标包来从工具链中删除它们,并通过从 TOOLCHAIN_HOST_TASK 中删除它们来宿主包。

    例如,要从 sdk 中删除目标包“curl-dev”,您必须在图像配方中添加以下内容:

    TOOLCHAIN_TARGET_TASK_remove = "curl-dev"
    

    要从您的 sdk 中删除相同的主机包,您必须在图像配方中添加以下内容:

    TOOLCHAIN_HOST_TASK_remove = "curl-dev"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 2018-03-28
      相关资源
      最近更新 更多