3

最近我发现我的发布可执行文件(使用 msvc++ express 2008 制作)变得非常大。当我使用十六进制查看器检查可执行文件时,我看到只有前 300k 字节包含有用数据,其余字节仅为零 - 6 兆零字节。

调试构建的 exe 大小为 1MB,但发布版本为 6.5MB。

为什么 MSVC++ express 做那件没用的事情?我该如何解决?

4

3 回答 3

10

您是否在程序的文件范围内定义了大型数组?这可能是原因之一。您可以使用 dumpbin 程序查看 exe 文件中的每个部分占用了多少空间,这应该可以为您提供“为什么”的线索。

于 2009-01-25T16:26:36.277 回答
2

也许您在发布时静态链接您的 .exe,但在调试时动态链接?检查这是对话框项目属性。

另一种可能性是在发布模式下很多函数是内联的,或者你使用了很多模板。

您可以在“项目属性”对话框中告诉编译器优化大小。

于 2009-01-25T17:23:57.033 回答
0

Release 比 Debug 大 6 倍——可能有问题。尝试创建一个新项目并复制您的源代码。编译它,看看你得到了什么 Debug 和 Release 可执行文件。

于 2009-01-25T16:39:41.447 回答