Rust 在 Windows 上 Release 编译彻底去除调试符号信息

本文介绍如何让 Rust 在以 Windows 为目标平台的 Release 编译的基础上,通过配置链接参数进一步彻底去除多余的调试符号信息,针对的工具链包括 GNU 和 MSVC。


去除额外的符号信息能减小最终生成程序的体积。如果是在 Windows 上使用 GNU 工具链,那么这一点会很明显。

一个 Rust 的 Hello World 程序,在 Windows 下,使用 GNU 工具链,即便是 Release 编译,最后生成的程序体积也有 3 MB 多。其中调试符号信息占了大部分体积;如果去除,程序体积可以下降至 600+ KB。好在如果使用的是 MSVC 工具链编译,调试符号会另存于 .pdb 文件,程序本体没有这样的体积问题。

在 Linux 下,如果编译时带上了符号信息,编译完还可以用 strip 工具解决这个问题,但是 Windows 下呢?


去除符号信息可以减小 Rust 程序体积,但本文不打算探讨减小 Rust 程序体积的各种技巧,本文只打算纯粹地介绍在 Windows 目标平台上编译 Rust 程序时如何去除额外的调试符号信息

读者如果想进...

阅读全文>>

6619 次浏览 1 条评论 标签:Windows debug Rust strip symbol gnu msvc
Ɣ回顶部