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

从x86_64交叉编译AArch64版GCC时--host参数如何配置?

解决方案

1. 错误根源

你使用的--host=aarch64-arm64-linux-gnu是无效的三元组格式:

  • aarch64本身就是arm64的标准架构名,重复书写会导致工具链无法识别
  • 三元组的company字段并非必须是真实厂商名,unknown是GNU工具链支持的标准占位符,目标机给出的aarch64-unknown-linux-gnu才是正确格式

2. 修正流程

步骤1:安装交叉编译工具链

在Ubuntu构建机上安装aarch64-linux-gnu交叉工具链:

sudo apt update && sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu

步骤2:重新运行configure

使用正确的三元组参数执行配置,推荐使用独立构建目录(out-of-tree构建):

mkdir build-gcc && cd build-gcc

../gcc-13.1.0/configure \
  --build=x86_64-pc-linux-gnu \
  --host=aarch64-unknown-linux-gnu \
  --target=aarch64-unknown-linux-gnu \
  --prefix=/opt/gcc-13.1.0-aarch64 \
  --enable-languages=c,c++ \
  --disable-multilib
  • --build:构建机的标准三元组,可省略让configure自动检测
  • --prefix:指定编译完成后的安装路径,可自行修改
  • --enable-languages:指定要编译的语言,按需添加
  • --disable-multilib:针对aarch64系统禁用多库支持,避免不必要的编译错误

步骤3:编译与安装

使用多核加速编译,然后完成安装:

make -j$(nproc)
sudo make install

3. 关于三元组company字段的说明

GCC的三元组格式cpu-company-system中:

  • company字段可以是实际厂商名(如intel、arm),也可以是unknown(无需指定特定厂商时),甚至可用pc表示通用PC系统
  • 核心要求是三元组必须能被GCC源码中的config.sub脚本识别,可通过以下命令验证格式有效性:
    ./config.sub aarch64-unknown-linux-gnu
    
    若返回相同字符串,则格式有效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 03:55:36