You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下gcc-multilib与gcc-9-aarch64-linux-gnu安装冲突解决

解决方案

冲突原因

Ubuntu 20.04官方软件源中,gcc-9-aarch64-linux-gnu与gcc-multilib存在包配置层面的互斥声明,无法直接同时安装。以下两种方案可实现同时具备aarch64交叉编译能力、x86 32位程序编译能力的需求:

方案一:手动安装32位编译依赖(推荐,无需隔离环境)

gcc-multilib是元包,作用是批量安装x86 32位编译所需的头文件、运行库,你可以手动安装对应组件避开冲突:

  • 第一步,先安装aarch64交叉编译工具链:
sudo apt install gcc-9-aarch64-linux-gnu
  • 第二步,再安装替代gcc-multilib功能的32位编译组件:
sudo apt install gcc-multilib-i686-linux-gnu libc6-dev:i386 lib32gcc-9-dev

使用方式和之前完全一致:

  • 编译x86 32位程序时添加-m32参数即可
  • 交叉编译aarch64程序时使用aarch64-linux-gnu-gcc-9命令即可

方案二:容器隔离环境

如果需要完整保留原生gcc-multilib包的配置,可以用容器将两个环境隔离:

  • 主机环境安装gcc-multilib,用于本地32位/64位程序编译
  • 启动Docker/Podman容器,在容器内安装gcc-9-aarch64-linux-gnu做交叉编译,两个环境互不影响

功能验证

安装完成后可以执行以下命令验证功能正常:

  • 验证32位编译能力:
gcc -m32 test.c -o test_x86_32 && file test_x86_32

输出应包含ELF 32-bit LSB executable, Intel 80386字样

  • 验证aarch64交叉编译能力:
aarch64-linux-gnu-gcc-9 test.c -o test_arm64 && file test_arm64

输出应包含ELF 64-bit LSB executable, ARM aarch64字样

内容的提问来源于stack exchange,提问作者xiaogw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:06:05