繁体   English   中英

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

[英]Delphi XE8 Console App code size

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

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

我预计新版本会有所增加,但按任何标准,将其放大12倍都是非常糟糕的。

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

Uses子句仅包括“ registry,Windows,dateutils,SysUtils”。

这是正常现象还是我错过了其他一些设置以将其关闭?

问题在您的使用列表中。 您正在使用的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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM