[英]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.RTTI
和System.Classes
執行上述操作會將控制台大小減小到417 KB。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.