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

从x86_64-RedHat Linux交叉编译Rust到aarch64-linux-gnu失败求助

解决树莓派4(64位Raspberry Pi OS)交叉编译Rust二进制程序的链接错误问题

问题本质

你的问题出在交叉编译时,Rust目标工具链未正确关联交叉编译C工具链及其系统库路径:要么默认用了本地cc(与目标架构不匹配),要么指定交叉编译器后找不到对应的启动文件和系统库。

解决步骤

1. 配置Rust目标工具链关联交叉编译器

在项目根目录创建或编辑config.toml(若要全局生效,可编辑~/.cargo/config.toml),添加以下内容:

[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"
rustflags = [
  "-C", "link-arg=-L/usr/aarch64-linux-gnu/lib",
  "-C", "link-arg=-L/usr/lib/gcc/aarch64-linux-gnu/$(ls /usr/lib/gcc/aarch64-linux-gnu/ | sort -V | tail -n1)/",
]

注:上述命令中的$(ls ...)会自动获取最新的gcc版本号,也可以手动替换为实际版本,比如12。

2. 安装目标架构的系统依赖库

仅安装交叉编译器不够,还需补充目标架构的标准库:

sudo dnf install glibc-devel.aarch64-linux-gnu libgcc.aarch64-linux-gnu

3. 执行编译

重新运行编译命令:

cargo build --target aarch64-unknown-linux-gnu

额外排查项

  • 验证交叉编译器可用性:执行aarch64-linux-gnu-gcc -v,确认输出包含aarch64架构信息,且系统库路径正常。
  • 更新Rust工具链:执行rustup update,确保工具链为最新版本后重试。

内容的提问来源于stack exchange,提问作者mariano-f-r

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:15:03