MUSL 支持完全静态二进制文件
默认情况下,Rust 将静态链接所有 Rust 代码。但是,如果使用标准库,它将动态链接到系统的 libc
实现。
如果您想要100%静态二进制文件,可以在 Linux 上使用 MUSL libc
。
安装MUSL支持
要添加对MUSL的支持,您需要选择正确的目标。 这个页面 有完整目标支持列表,其中一些是musl
。
如果你不确定你想要什么,对于64位 Linux,它可能是 x86_64-unknown-linux-musl
。 我们将在本指南中使用此目标,但其他目标的说明保持不变,只需在我们提及目标的位置更改名称。
要获得对此目标的支持,请使用 rustup
:
$ rustup target add x86_64-unknown-linux-musl
这将安装对默认工具链的支持; 要安装其他工具链,请添加 --toolchain
标志。例如:
$ rustup target add x86_64-unknown-linux-musl --toolchain=nightly
使用MUSL构建
要使用这个新目标,请将 --target
标志传递给 Cargo:
$ cargo build --target x86_64-unknown-linux-musl
生成的二进制文件现在将使用 MUSL 构建!