在 CentOS 上进行 Rust 跨平台开发
一 环境准备与国内加速
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh,完成后执行 source $HOME/.cargo/env 并验证 rustc --version、cargo --version。sudo yum groupinstall "Development Tools" -y && sudo yum install -y epel-release。~/.bashrc 或 ~/.zshrc):
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustupexport RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup$HOME/.cargo/config.toml):
[source.crates-io]
replace-with = 'ustc'
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"
[net]
git-fetch-with-cli = true
二 跨平台开发常用做法
cargo build --target <triple> 构建;产物位于 target/<triple>/release|debug。三 Linux 到 Linux 的便携交付 musl 静态构建
rustup target add x86_64-unknown-linux-muslCargo.toml):openssl = { version = "0.10", features = ["vendored"] }cargo build --release --target x86_64-unknown-linux-musl四 使用 Cross 容器化跨平台构建与测试
cargo install cross 或 cargo binstall crosscross build --target aarch64-unknown-linux-gnucross run --target aarch64-unknown-linux-gnucross test)。QEMU_STRACE=1 cross run ... 进行系统调用级别的调试。cross build --release --target <triple>,并收集产物。五 常见问题与排查要点
openssl-sys 构建报错):优先在依赖上启用 vendored;或在构建环境中显式设置 OPENSSL_DIR / OPENSSL_INCLUDE_DIR / OPENSSL_LIB_DIR 等变量,使构建过程找到正确的头文件与库路径。~/.cargo 与 target 目录(注意不同目标三元组的缓存隔离)。