8

我最近从 Delphi 7 搬到了 Delphi XE3。

Delphi 7 中 107kb 的 dll 文件现在编译为 2.7 MB。另一个 114kb 现在是 4.7 MB!

这是正常的吗?我可以做些什么来减少文件大小?如果您需要更多信息,请询问。

更新:

这两个 dll 文件已经在发布模式下编译。

听从梅森的建议后:

4.7MB 文件减少到 834kb,2.7MB 文件减少到 2.1MB。这个 2.1MB 的文件利用了泛型和一个名为 nExcel 的外部库,用于生成 Excel 文件。虽然在文件大小较小时也使用了 nExcel,但使用泛型是代码的新增功能,我猜这可能是文件大小保持相当大的原因。

4

1 回答 1

15

其中一些是不可避免的;随着更多功能的添加,RTL 变得更大。然而,这个大小增加的很大一部分将是由于在 Delphi 2010 中添加了扩展的 RTTI。

您可以通过将以下两行放在主项目文件中的任何uses子句之前来解决此问题:

{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
{$WEAKLINKRTTI ON}

这些将导致编译器在整个项目中最小化扩展 RTTI。(请注意,这意味着您将无法使用 RTTI 功能。但由于这是一个 Delphi 7 项目,您可能还没有使用它。您需要阅读扩展 RTTI 并查看您是否可以找到有用的事情来做。)

于 2012-10-08T01:37:21.037 回答