Мне нужно сильно оптимизировать размер моего исполняемого файла (ARM
development) и
Я заметил, что в моей текущей схеме сборки (gcc
+ ld
) неиспользуемые символы не удаляются.
Использование arm-strip --strip-unneeded
для результирующих исполняемых файлов/библиотек не изменяет размер вывода исполняемого файла (я понятия не имею, почему, может быть, это просто не получается).
Каким образом (если он существует) изменить мой конвейер здания, чтобы неиспользуемые символы были удалены из результирующего файла?
Я бы даже не подумал об этом, но моя текущая встроенная среда не очень "мощная" и
сохранение даже 500K
из 2M
приводит к очень хорошему повышению производительности загрузки.
Update:
К сожалению, текущая версия gcc
, которую я использую, не имеет опции -dead-strip
, а -ffunction-sections... + --gc-sections
для ld
не дает существенной разницы для полученного результата.
Я в шоке, что это даже стало проблемой, потому что я был уверен, что gcc + ld
должен автоматически разбивать неиспользуемые символы (почему они даже должны их хранить?).