Rust 笔记
文章目录
安装 rust
-
安装 rustup,参考官网
1 2 3 4
export RUST_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # 按照提示,一直 default 即可
-
配置 rustup、toolchain 和 target 更新源
1 2 3
cat >> /etc/profile.d/rustup.sh <<-EOF export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup EOF
-
配置 crate 源
1 2 3 4 5 6 7
cat >> ~/.cargo/config <<-EOF [source.crates-io] replace-with = 'tuna' [source.tuna] registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git" EOF
交叉编译
树梅派 Alpine armv7/armhf
-
下载交叉编译工具
1 2 3
curl -LO https://musl.cc/armv7l-linux-musleabihf-cross.tgz tar zxf armv7l-linux-musleabihf-cross.tgz -C /opt/ export PATH=/opt/armv7l-linux-musleabihf-cross/bin/:$PATH
-
配置 target
1 2 3 4 5
rustup target add armv7-unknown-linux-musleabihf cat >> ~/.cargo/config <<-EOF [target.armv7-unknown-linux-musleabihf] linker = "armv7l-linux-musleabihf-ld" EOF
-
编译
1 2 3 4 5 6
# 操作系统如果是 armv7,则需指定该 cflag 来禁用 fpu export CFLAGS='-mfpu=neon' export CC=armv7l-linux-musleabihf-gcc cargo build --target armv7-unknown-linux-musleabihf --release armv7l-linux-musleabihf-strip target/armv7-unknown-linux-musleabihf/release/{目标二进制文件}
树梅派 Alpine aarch64
-
下载交叉编译工具
1 2 3
curl -LO https://musl.cc/aarch64-linux-musl-cross.tgz tar zxf aarch64-linux-musl-cross.tgz -C /opt/ export PATH=/opt/aarch64-linux-musl-cross/bin/:$PATH
-
配置 target
1 2 3 4 5
rustup target add aarch64-unknown-linux-musl cat >> ~/.cargo/config <<-EOF [target.aarch64-unknown-linux-musl] linker = "aarch64-linux-musl-ld" EOF
-
编译
1 2 3
export CC=aarch64-linux-musl-gcc cargo build --target aarch64-unknown-linux-musl --release aarch64-linux-musl-strip target/aarch64-unknown-linux-musl/release/{目标二进制文件}
文章作者 Colben
上次更新 2021-08-29