【发布时间】:2015-03-11 22:46:01
【问题描述】:
我最近安装了 Delphi XE7。当我第一次编译一个旧应用程序时,当我看到 EXE 的大小增加了 10MB 时,我惊掉了下巴!
在“项目选项”中播放时,我发现将“调试信息”设置为“有限调试信息”会减小 EXE 大小,使其非常接近 Delphi XE 生成的 EXE。 也许在 Delphi XE7 下,“有限调试信息”相当于 Delphi XE 中的“调试信息”,因为它会产生相同的 EXE 大小?
那么,为什么完整的“调试信息”会使 EXE 如此之大(与 XE 相比)?我无法用有限的信息(我猜)编译 EXE,因为我想完全访问调试的好东西(EurekaLog 也需要它)。
Embarcadero 的文档没有说明“有限”和完整调试信息之间的区别。
EurekaLog 文档适用于旧版本的 Delphi,因此它没有明确说明我是否可以使用新选项(仁慈的)“有限调试信息”或完整的调试信息。我将不得不进行实验。
【问题讨论】:
-
这里有一个相关的帖子,但它没有处理EXE大小问题:stackoverflow.com/questions/19653475/…
-
尝试启用链接器的“将调试信息放在单独的 TDS 文件中”选项。
-
@KenWhite-是的。但这一次他们添加了一个新的编译器选项(有限),对此绝对没有一个解释。
-
为什么需要在 exe 中包含调试信息,或者分发 tds 文件?使用 madExcept,您可以将该信息包含在 exe 中,也可以将其保留在基础文件中。当错误报告发送进来时,错误报告查看器会解码原始数据并将地址转换为函数名、行号等。当然它与 Eureka 相同。
-
@DavidHeffernan-你是对的。对于 EurekaLog,调试信息应该只在“编译”中打开,而不是在“链接”中。
标签: delphi delphi-xe delphi-xe7 eurekalog