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