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