求问MSVC编译器cl.exe去除全部调试信息的未公开(undocumented)编译选项
求问MSVC编译器cl.exe去除全部调试信息的未公开(undocumented)编译选项
嘿,我刚好对这个有点印象!你找的那个未公开的cl.exe编译选项应该是/Qstrip_debug——这个选项能彻底剥离PE文件里所有调试相关的信息,比官方公开的/DEBUG:NONE还要彻底,完全贴合你要优化PE文件大小、做压缩的需求。
之前确实在社区讨论里见过有人提这个选项,它不在MSVC官方的cl.exe帮助文档里,属于未公开的隐藏选项,但实测下来,在VS2017及之后的多个MSVC版本上都能正常工作。用它编译出来的可执行文件,那些即使开了/DEBUG:NONE还可能残留的微量调试相关信息也会被清掉,对压缩后的体积优化帮助很大。
如果还想进一步榨干PE文件的空间,还可以搭配几个公开的优化选项一起用:比如/Zl(省略默认库的链接名称,缩小PE头的大小)、/Oxs(优先优化输出文件的体积),组合起来效果会更明显,但你要找的那个核心未公开调试信息剥离选项,就是/Qstrip_debug没错啦!
备注:内容来源于stack exchange,提问作者Yakari TunetMic
相关产品推荐
相关产品推荐

