我最近从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文件使用Generics和一个名为nExcel的外部库来生成Excel文件。虽然在文件大小较小时也使用了nExcel,但Generics的使用是代码的新增功能,我想这可能是文件大小保持相当大的原因。
答案 0 :(得分:15)
有些是不可避免的;随着更多功能的增加,RTL变得越来越大。但是,由于在Delphi 2010中添加了扩展的RTTI,大量增加的大小将会增加。
您可以通过在主项目文件中,在任何uses
子句之前添加以下两行来解决此问题:
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
{$WEAKLINKRTTI ON}
这将使编译器在整个项目中最小化扩展的RTTI。 (请注意,这意味着您将无法使用RTTI功能。但由于这是Delphi 7项目,您可能还没有使用它。您需要阅读扩展的RTTI并查看是否可以找到有用的东西。)