我最近安装了德尔福XE7。当我第一次编译一个旧的应用程序时,当我看到EXE的大小增加到10 my时,我的下巴掉了下来!
在“项目选项”中,我发现将“Debug信息”设置为“Limited Debug Information”可以将EXE大小降低到非常接近Delphi XE生成的EXE。也许在德尔福XE7下,“有限调试信息”是否等同于德尔福XE的“调试信息”,因为它会导致相同的EXE大小?
那么,为什么完全的“调试信息”使得EXE如此之大(与XE相比)?我无法用有限的信息编译EXE (我猜),因为我想完全访问调试工具( EurekaLog也需要它)。
Embarcadero的文档没有提到“有限”和完全调试信息之间的区别。
EurekaLog文档是一个旧版本的德尔菲,所以它没有明确说明我是否可以使用新的选项(仁慈)‘有限调试信息’或完整的调试信息。我将不得不做实验。
发布于 2015-01-14 04:02:20
“有限调试信息”是一个只影响Android目标编译器的选项。但是,由于所有编译器都共享相同的接口,因此每个目标都会出现此选项。它只适用于每个单独的对象(.o)文件中包含多少调试信息。对于Android (和iOS),调试信息格式是矮小的。侏儒是一种非常详细的格式,可以包含关于给定单元中所有类型的高度详细的结构类型信息,以及来自给定单元“使用”的所有类型的高度详细的结构类型信息。在“有限调试信息”下,不会生成所有已使用单元的类型信息。这可能意味着某些字段和局部变量在调试时可能无法检查。
至于调试信息是否包含在最终的可执行文件中,这是由链接器选项而不是编译器选项控制的。链接器将链接任何可用的调试信息。如果选择为Android和“”构建,那么最终的图像将有更多的信息和更大的信息。
现在我将假设您是针对Windows (您实际上没有声明您是,但我将在这里使用我的灵力),在这种情况下,“有限调试信息”和“调试信息”是同一回事。在Windows下,调试格式称为“巨型”。你能说“讽刺”吗?侏儒是一个非常冗长的格式,而Embarcadero(Borland最初的)自己的巨型格式更紧凑。规模的增加只能来自增加的运行时功能,而且可能是由于更多地使用泛型。
https://stackoverflow.com/questions/27931285
复制相似问题