Avatar ·

为什么 Rust 可执行文件这么大以及如何修复?

大家好!我是 Rust 新手,注意到一个奇怪的现象:即使是最简单的程序也占用数兆字节。我写了一个 "Hello, world!": ```rust fn main() { println!("Hello, world!"); } ``` 通过 `cargo build` 编译后,得到一个大小为 3.5 MB 的文件!相比之下,C 语言中类似的程序只占 16 KB。我明白 Rust 不是 C,但 200 倍的差异让我担忧。 我尝试添加 `--release`——变成了 2.8 MB。仍然很大。而且我没有使用任何外部 crate,只用了标准库。我的项目是一个普通的二进制文件,没有多余的依赖。 我听说 Rust 会静态链接标准库,但它真的那么大吗?Go 也是静态链接,但那里的二进制文件更小。也许我哪里做错了?有没有办法减小体积?或者这只是内存安全和零成本抽象的代价? 感谢您的解释和关于减小体积的建议。我想知道这对 Rust 来说是正常的,还是我遗漏了什么。