添加Target
这里我所用的Linux是64位的,所以我这里需要添加x86_64-unknown-linux-musl 的这个target。
rustup target add x86_64-unknown-linux-musl
1
通过下面的命令可以查看所有支持的target和已经安装的target。如果已安装会在后面显示(installed)。
rustup target list
添加配置文件
配置文件可以针对某个项目,当然也可以在全局配置。下面以针对单个项目为例。
在项目目录下添加.cargo文件夹,在.cargo文件夹下添加config.toml文件。并且在config.toml中输入以下内容。
[target.x86_64-unknown-linux-musl]
linker = "rust-lld"
rustflags = ["-C", "linker-flavor=ld.lld"]
PS:关于全局配置,可以把上面的配置内容,复制到"C:/Users/当前用户名/.cargo/config"文件中,如果没有可以自行创建。config文件可以带toml扩展名,也可以不带
项目编译
终端执行下面的命令,编译为Linux可执行二进制文件。如果不加--release则默认以debug模式编译。
cargo build --release --target=x86_64-unknown-linux-musl
不知道你是否测试过下面的这个场景。在Windows上,如果把每次使用cargo build命令编译后生成.exe可执行文件复制到其它电脑上运行,是无法运行的。这里呢,我们需要使用静态编译。否则,在其它Windows电脑上将会报错。
静态编译的方法也很简单,只需在配置文件中加入下面的代码。
[target.x86_64-pc-windows-msvc]
rustflags = ["-C", "target-feature=+crt-static"]
然后再使用下面的命令编译即可。
cargo build --release --target=x86_64-pc-windows-msvc
参考
Rust交叉编译——Windows To Linux_L我是小学生的博客-CSDN博客_rust windows编译linux