加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 减少exe文件

发布时间:2020-12-15 10:17:21 所属栏目:大数据 来源:网络整理
导读:使用Delphi(或者一般来说,任何工具,如果存在的话),是否可以减少exe文件的大小,删除所有不使用但是存在的代码? (例如,存在但从未被调用的函数或过程)。 我记得使用Pascal,使用单元(没有对象),编译器只包含真正使用的过程和函数,并将从最终的exe中删
使用Delphi(或者一般来说,任何工具,如果存在的话),是否可以减少exe文件的大小,删除所有不使用但是存在的代码?
(例如,存在但从未被调用的函数或过程)。
我记得使用Pascal,使用单元(没有对象),编译器只包含真正使用的过程和函数,并将从最终的exe中删除单元中的未使用的例程。

使用Object-pascal,我记得在Delphi 1中,一个对象的所有成员都包含在exe中;
有什么改变,直到德尔福XE2?

解决方法

如果您不使用RTTI,您可以将其添加到.dpr文件的顶部(紧接在程序之后)以删除额外的RTTI信息:
{$IFOPT D-}{$WEAKLINKRTTI ON}{$ENDIF}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}

如果你想把它从所有的RTL / VCL单元中删除,那么你也需要把它们放在你的项目文件中,以便上面的设置可以生效。我不认为我会建议这样做,因为我不相信可执行大小的减少值得编译您自己的RTL / VCL的复杂性。

您也可以在.dpr文件中再次添加以下内容:

{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}

这将剥离.exe中不需要的重定位信息。不要将其添加到DLL或包中!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读