Rust 没有的交叉编译没有 go 那么方便,但也还算可以接受

我是在windows上写rust代码的,想编译成linux下可用的二进制.由于面向google编程,一开始搜索到一个方法,执行如下:

rustup target add x86_64-unknown-linux-gnu
cargo build --target x86_64-unknown-linux-gnu

编译时报错:

linker cc not found

根据这个错误信息去查找,找出一堆不相关的答案

最后尝试了一个能解决问题的做法,就是使用其它target,并做好配置:

1 添加 target : x86_64-unknown-linux-musl
rustup target add x86_64-unknown-linux-musl
2 在 c:\users\用户名.cargo\config 文件(注意:在我的电脑上,这个config文件存在,并且没有 .toml 后缀),添加以下配置:
rustup target add x86_64-unknown-linux-musl
3 编译
cargo build --release --target=x86_64-unknown-linux-musl
4 在项目的 "/target/x86_64-unknown-linux-musl/release" 目录下可以找到编译出来的二进制文件,在 wsl上试着执行成功

标签: 交叉编译, rust, windows, linux