如何使用Rust和rustup构建32位静态二进制文件?

And*_*san 8 rust

使用在Rust中创建一个基本的Web服务使用Rustup将Rust作为文档,我已经设法使用Rust成功编译64位静态二进制文件:

rustup target add x86_64-unknown-linux-musl
cargo build --target=x86_64-unknown-linux-musl
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到如何构建32位静态二进制文件.

我确实i686-unknown-linux-musl在运行时找到了一个目标rustc --print target-list,但发现它在运行时不可用rustup target list.

我错过了什么或者不可能吗?

mal*_*rbo 7

std二进制文件i686-unknown-linux-musl仅适用于Rust 1.10或更高版本.您可以i686使用以下命令创建静态二进制文件:

$ rustup default stable # stable must at least 1.10
$ rustup target add i686-unknown-linux-musl
$ cargo build --target i686-unknown-linux-musl
Run Code Online (Sandbox Code Playgroud)

生成的二进制文件可以在target/i686-unknown-linux-musl/debug/或上找到target/i686-unknown-linux-musl/release/.

我们可以检查生成的二进制文件是否静态链接ldd:

$ ldd target/i686-unknown-linux-musl/debug/main
not a dynamic executable
Run Code Online (Sandbox Code Playgroud)