题
我有完全相同的delphi版本,bpls,组件,一切。然而在三台机器中,生成的可执行文件的大小不同。 还有什么可以影响exe的大小?
在我的机器上,我得到这个尺寸(Vista 6.0.6001):
4.547.584 bytes
在我同事的机器上,他得到了(XP 5.1.2600 SP3):
4.530.688 bytes
在第三个大学中,他得到:(XP 5.1.2600 SP2)
4.527.104 bytes
操作系统版本是否会影响已编译的exe大小?
解决方案
似乎是配置差异,或者如果您在三台计算机之间安装了不同版本的组件。我建议您在验证构建设置是否相同后,创建一个空白表单并在所有3上尝试。如果它是相同的,那么添加一些第三方组件,直到找到不同的组件。
此外,您可能拥有不同版本的Delphi(主要版本或次要版本/更新版本)。
其他提示
差异几乎肯定来自机器之间的不同编译器设置。例如,打开或关闭“范围检查”会稍微改变可执行文件的最终大小。
最新版本的Delphi的一个好处是使用MSBuild,它可以轻松确保任何给定版本的设置都相同。
嗯...
SizeOf(XPSP2.exe)<!> lt; SizeOf(XPSP3.exe)<!> lt;一下SizeOf(Vista.exe)
结论:
Windows版本越晚,<!>“填充<!>”越多;随机插入以增加可信度。如果它需要更多空间,那么它必须更强大,它可能由世界上最好的工程师编码! :-)(对不起 - 我已经在微软工作太久了!)
使用Delphi / BCB,这些是影响大小的几个因素:
您的构建配置:发布模式未在调试部分中链接到EXE(默认情况下),因此更小。你也可以从代码优化中获得提升。
与动态RTL链接:如果启用,EXE将会更小,但您需要外部库可用。
使用运行时软件包构建:如果启用,您可以动态链接到您使用的运行时软件包,而不是直接将它们链接到EXE中。这可能导致最大的差异。
他们是其他因素,但上述往往是我遇到的主要因素。
实际上,这是一个已经存在很长时间的问题。参见