以下是在CentOS上进行Rust跨平台开发的指南:
使用rustup安装Rust,确保获取最新工具链:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env # 配置环境变量
rustc --version # 验证安装
添加目标平台
使用rustup target add添加需编译的目标平台(如Windows、macOS、其他Linux架构):
rustup target add x86_64-pc-windows-gnu # 编译Windows 64位
rustup target add aarch64-unknown-linux-gnu # 编译ARM64 Linux
配置链接器(可选)
若目标平台需特定链接器,在~/.cargo/config.toml中指定:
[target.x86_64-pc-windows-gnu]
linker = "x86_64-w64-mingw32-gcc" # Windows需安装MinGW工具链
条件编译
使用#[cfg]属性编写平台特定代码:
#[cfg(target_os = "windows")]
fn platform_code() {
println!("Running on Windows!");
}
跨平台库
选用支持多平台的第三方库,如:
Tauri(跨平台桌面应用)、Iced(跨平台GUI框架)tokio、crossbeamstd::path::PathBuf交叉编译
使用cargo build指定目标平台生成可执行文件:
cargo build --target x86_64-pc-windows-gnu --release
打包分发
cargo-bundle生成应用包(如.AppImage、.deb)。FROM rust:latest as builder
WORKDIR /app
COPY . .
RUN cargo build --release --target x86_64-unknown-linux-gnu
FROM debian:buster-slim
COPY --from=builder /app/target/x86_64-unknown-linux-gnu/release/app /usr/local/bin/app
CMD ["app"]
CI/CD集成
通过GitHub Actions等工具配置跨平台构建流水线,自动测试不同平台兼容性。
测试工具
使用#[cfg(test)]编写平台无关测试,或通过cargo test在目标环境中运行测试。
| 工具/库 | 用途 | 示例 |
|---|---|---|
rustup |
管理工具链与目标平台 | rustup target add ... |
cross |
容器化交叉编译 | cross build --target ... |
Tauri |
跨平台桌面应用开发 | cargo add tauri |
cargo-bundle |
生成应用安装包 | cargo bundle --release |
通过以上步骤,可在CentOS上高效开发跨平台Rust应用,充分利用Rust工具链的原生跨平台能力。