我最近用delphi XE但exe文件大小是因为RTTI的非常大的(我认为)
如何删除RTTI,我可以让我的应用程序的大小小的Delphi 2009的应用程序(490 KB)无压缩;什么是使用RTTI的
在短(通过链接在飞溅的答案提供完整的故事):
{$ RTTI显式方法([])PROPERTIES([])字段([])}
需要注意的是as of XE6 and newer, this needs to be in each individual unit for which you want to disable RTTI.在此之前(XE5及以下)可能是在DPR文件,并会应用到项目中的所有单位。
你的问题是不相关的RTTI。如果你是在谈论增加相对较小(100-200K),这是由于在RTL附加功能(增加了对Unicode的支持等)。如果你500-700K增加左右,然后检查是否链接VCL UI单位(窗体,控件等)。如果你3MB增加,那么你已经打开额外的调试符号。
这是因为一些仿制药的功能已经被添加到SYS单位。在2009年加入仿制药,但在系统设备部分班级被改写,在XE和XE2仿制药。恕我直言
收藏此标志,以减少大小 在DPR文件(项目>视图源) 每个单独的单元(如XE5的)*。
{$SETPEFlAGS IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED or
IMAGE_FILE_LOCAL_SYMS_STRIPPED OR IMAGE_FILE_RELOCS_STRIPPED}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
(*)注意as of XE5 and newer, this needs to be in each individual unit for which you want to disable RTTI.在此之前(XE4及以下)可能是在DPR文件,并会应用到项目中的所有单位。
我不认为这是什么RTTI增加了这么多的大小开销您的应用程序。你怎么知道它是什么?