Вопрос

Я недавно использую Delphi XE, но размер EXE очень большой из-за RTTI (я думаю)

HOSTO Удалить RTTI и могу ли я сделать размер моего приложения максимально маленьким, как приложение Delphi 2009 (490 kb) без компрента; И что такое использование RTTI

Это было полезно?

Решение

Короче (полная история, предоставленная ссылками в ответе всплеска):

{$ RTTI Явные методы ([]) Свойства ([]) поля ([])}

Обратите внимание, что По состоянию на XE6 и новее, это необходимо в каждой отдельной единице, для которой вы хотите отключить RTTI. До этого (XE5 и ниже) он может быть в файле DPR и применится к всем устройствам в проекте.

Другие советы

Ваша проблема не связана с RTTI. Если вы говорите о относительно небольшом увеличении (100-200К), это связано с дополнительными функциями в RTL (добавлено для поддержки Unicode ETC). Если вы получите увеличение 500-700k, а затем проверьте, ссылаетесь ли вы литы VCL UI UI (формы, элементы управления и т. Д.). Если вы получите повышение 3 МБ, вы включили дополнительные символы отладки.

Это потому, что некоторые генерические функциональные возможности были добавлены в системы 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([])}

(*) Обратите внимание, что По состоянию на XE5 и новее, это должно быть в каждой отдельной единице, для которой вы хотите отключить RTTI. До этого (XE4 и ниже) он может быть в файле DPR и применяется ко всем блокам в проекте.

Я не думаю, что это RTTI, что добавляет столько размера наверху на ваше приложение. Откуда ты знаешь?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top