请教 rust 如何做到交叉编译

67 天前
dxatgp02  dxatgp02

有一些写好的 rust 想放到 raspi 上面跑试试 网上查了"rust cross compile arm64" 用过

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

也试过 cargo 配置文件里加

[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"
rustflags = ["-L", "/usr/lib/gcc/aarch64-linux-gnu/13.1.0/tmp/usr/lib/"]

都解决不了,放到 raspi 编译一次要很久。

1524 次点击
所在节点   Rust  Rust
7 条回复
tangzs
tangzs
67 天前
安装软件包
```
sudo apt-get install gcc-multilib g++-multilib
```
cargo 配置文件
```
TRIPLET=aarch64-unknown-linux-gnu
rustup target add $TRIPLET
cargo build \
--target $TRIPLET \
--config target.$TRIPLET.linker=\"aarch64-linux-gnu-gcc\"
```
静态编译
```
TRIPLET=aarch64-unknown-linux-gnu
rustup target add $TRIPLET
RUSTFLAGS='-C target-feature=+crt-static' cargo build \
--target $TRIPLET \
--config target.$TRIPLET.linker=\"aarch64-linux-gnu-gcc\" \
--release
```
Nugine0
Nugine0
67 天前
基于 docker 的一键交叉编译 https://github.com/cross-rs/cross

最近 github actions 出了免费的 arm64 linux runner ,也可以白嫖
0x676e67
0x676e67
66 天前
he8822185
he8822185
65 天前
用 cargo-zigbuild
bli22ard
bli22ard
52 天前
https://www.v2ex.com/t/1096658#r_15657744 17 楼的回答,rust 交叉编译最佳实战
JohnSmith
JohnSmith
48 天前
报错信息至少贴出来
dxatgp02
dxatgp02
44 天前
@JohnSmith 用上面的 zigbuild 能解决了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1107051

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX