Delphi XE8控制台应用程序代码大小

时间:2015-08-04 14:08:20

标签: delphi delphi-2007 delphi-xe8

我有一个小的控制台应用程序,我在安装程序中使用它来设置注册表设置和日期的东西。它只有80行代码,没有单位,都在主程序文件中完成。它最初是在D2007中编译的,编译时的exe大小是84kB。

我正在尝试在XE8 32位中编译该文件,其编译大小为1MB。

我预计新版本会有所增加,但任何标准都要大12倍。

它已在发布模式下编译,所有调试选项都已关闭。

uses子句仅包含“registry,Windows,dateutils,SysUtils”。

这是正常还是我错过了其他一些设置才能关闭?

1 个答案:

答案 0 :(得分:2)

问题出现在您的使用列表中。您使用的System.Win.Registry使用的System.Classes使用System.RTTI

(以下尺寸适用于XE4,但XE8不应太远)

使用中只有System.SysUtils的空控制台应用程序大小为122 KB。添加System.RTTI,最终会得到962 KB。

解决方案是取出使用过的RTL单元,将它们复制到项目文件夹中,然后将{$WEAKLINKRTTI ON}{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}添加到它们中。

例如,对System.RTTISystem.Classes执行上述操作会将控制台大小减小到417 KB。