如何在Yocto中使用populate_sdk时排除软件包

5
我有一个Yocto bitbake镜像配方,可以成功构建。
然而,当使用-c populate_sdk命令生成SDK时,相同的镜像配方会失败。
错误似乎是由混合32位和64位库版本引起的,在只构建二进制映像时这没问题,但在填充SDK根文件系统时,头文件互相冲突。
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位版本的库(recipes),而不会完全从生产镜像中排除它们?

1个回答

0

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

例如,要从您的SDK中删除目标软件包“curl-dev”,您需要在图像配方中添加以下内容:

TOOLCHAIN_TARGET_TASK_remove = "curl-dev"

如果要从您的SDK中删除相同的主机软件包,则必须在您的镜像配方中添加以下内容:

TOOLCHAIN_HOST_TASK_remove = "curl-dev"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接