最近我发现我的发布可执行文件(使用 msvc++ express 2008 制作)变得非常大。当我使用十六进制查看器检查可执行文件时,我看到只有前 300k 字节包含有用数据,其余字节仅为零 - 6 兆零字节。
调试构建的 exe 大小为 1MB,但发布版本为 6.5MB。
为什么 MSVC++ express 做那件没用的事情?我该如何解决?
最近我发现我的发布可执行文件(使用 msvc++ express 2008 制作)变得非常大。当我使用十六进制查看器检查可执行文件时,我看到只有前 300k 字节包含有用数据,其余字节仅为零 - 6 兆零字节。
调试构建的 exe 大小为 1MB,但发布版本为 6.5MB。
为什么 MSVC++ express 做那件没用的事情?我该如何解决?
您是否在程序的文件范围内定义了大型数组?这可能是原因之一。您可以使用 dumpbin 程序查看 exe 文件中的每个部分占用了多少空间,这应该可以为您提供“为什么”的线索。
也许您在发布时静态链接您的 .exe,但在调试时动态链接?检查这是对话框项目属性。
另一种可能性是在发布模式下很多函数是内联的,或者你使用了很多模板。
您可以在“项目属性”对话框中告诉编译器优化大小。
Release 比 Debug 大 6 倍——可能有问题。尝试创建一个新项目并复制您的源代码。编译它,看看你得到了什么 Debug 和 Release 可执行文件。