如何为其他平台编译Cargo项目?新手跨平台编译实操求助
跨平台编译Rust项目到Arch系Linux(Manjaro)及其他平台
针对Manjaro(Arch系)的快速编译方案
因为你的朋友用的是x86_64架构的Manjaro,最省心的方式是编译静态二进制文件——这种文件不依赖系统里的任何额外库,拿到就能直接运行:
添加Linux静态编译目标
打开Windows终端(PowerShell或CMD),运行命令:rustup target add x86_64-unknown-linux-musl安装编译依赖工具
Windows下编译Linux静态二进制需要musl链接器,你可以通过两种方式安装:- 如果你用Chocolatey包管理器,执行:
choco install mingw-w64 - 或者直接安装Rust的GNU工具链:
rustup toolchain install stable-x86_64-pc-windows-gnu
- 如果你用Chocolatey包管理器,执行:
编译项目
进入你的Cargo项目目录,执行编译命令:cargo build --release --target x86_64-unknown-linux-musl提取可执行文件
编译完成后,可执行文件会生成在target/x86_64-unknown-linux-musl/release/目录下,找到和你项目同名的、没有.exe后缀的文件,直接发给朋友即可。朋友端的运行步骤
他拿到文件后,打开终端进入文件所在目录,先给文件添加执行权限:chmod +x 你的项目文件名之后直接运行:
./你的项目文件名
通用跨平台编译思路
如果以后要编译到其他平台,核心流程都是这几步:
- 确定目标平台的Rust三元组:常见的几个例子:
- macOS x86_64:
x86_64-apple-darwin - macOS ARM(M系列芯片):
aarch64-apple-darwin - Linux ARM64:
aarch64-unknown-linux-musl - Windows 32位:
i686-pc-windows-msvc
- macOS x86_64:
- 添加对应编译目标:执行
rustup target add 目标三元组 - 安装对应平台的链接器:不同平台需要的链接器不同,比如编译到macOS需要Xcode相关工具(Windows下操作较复杂,新手可暂时跳过),编译到Linux用MinGW或musl工具链即可
- 执行编译:运行
cargo build --release --target 目标三元组
额外提醒
- 如果你不需要静态编译,也可以用
x86_64-unknown-linux-gnu目标,但生成的二进制依赖系统的glibc库,Manjaro一般自带,但精简版Linux发行版可能会出现依赖缺失问题,所以静态编译的musl目标更稳妥。 - 一定要编译
release版本,这个版本经过优化,体积更小、运行速度更快,适合分享给他人。
内容的提问来源于stack exchange,提问作者DaFrancc
相关产品推荐
相关产品推荐

