我有完全相同的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中。这可能导致最大的差异。

他们是其他因素,但上述往往是我遇到的主要因素。

IIRC,在进行细微更改后重新编译也可能会留下残余的问题 - 智能编译器的副作用之一,我想:}

scroll top