M1 Mac交叉编译Rust到树莓派:找不到aarch64-unknown-linux-gnu-gcc链接器
树莓派aarch64架构Rust交叉编译最简方案(解决链接器缺失问题)
针对macOS用户(你当前的环境)
- 直接安装官方维护的交叉编译工具链,不用折腾crosstool-ng:
这个包会直接包含brew install aarch64-unknown-linux-gnuaarch64-unknown-linux-gnu-gcc以及配套的链接器、objcopy等工具,一次性解决所有依赖缺失问题。
配置Cargo
- 编辑
~/.cargo/config文件,添加以下配置:[target.aarch64-unknown-linux-gnu] linker = "aarch64-unknown-linux-gnu-gcc"
验证编译
- 确保已经添加目标架构:
rustup target add aarch64-unknown-linux-gnu - 测试编译你的项目:
cargo build --target aarch64-unknown-linux-gnu
为什么之前的方法没用?
brew install binutils安装的是x86架构的工具链,不是针对aarch64的交叉版本,所以无法匹配Rust的交叉编译需求。- crosstool-ng需要手动编译定制工具链,步骤繁琐且容易遇到依赖缺失问题,对新手不友好,完全没必要用这种复杂方案。
补充:Linux用户的简便方案
- Debian/Ubuntu系发行版:
sudo apt install gcc-aarch64-linux-gnu - RHEL/CentOS系发行版:
安装完成后同样配置sudo dnf install gcc-aarch64-linux-gnu~/.cargo/config里的链接器路径即可。
内容的提问来源于stack exchange,提问作者reeslabree
相关产品推荐
相关产品推荐

