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

时间:2016-05-17 13:04:05

标签: rust

使用Creating a basic webservice in RustTaking Rust everywhere with rustup作为文档,我已成功使用Rust编译64位静态二进制文件:

rustup target add x86_64-unknown-linux-musl
cargo build --target=x86_64-unknown-linux-musl

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

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

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

1 个答案:

答案 0 :(得分:7)

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

可以在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