Это не особо значимая вещь.Возможно, удастся устранить некоторые вещи, но как только у вас появится программа, которая на самом деле что-то делает, она сразу же вернет эти вещи обратно.
Например, на другой платформе (я неДля Windows), минимальный размер программы больше, чем вы думаете, потому что каждая программа имеет обработчик atexit для очистки.Этот обработчик имеет возможный случай ошибки, что означает, что он извлекает printf и все вещи ввода / вывода.Сам Atexit также тянет в malloc и все, что связано с памятью.И, без сомнения, есть еще несколько других моментов.Конечный результат - статический двоичный размер 400 КБ.Это раздражает в неоперативной программе, но на самом деле все программы нуждаются в этом, так что это спорный вопрос.
В общем, если вы хотите минимизировать размер программы, скомпилируйте с -Os
и попробуйтеиспользовать -flto
или -fwhole-program
(но это последнее потребует много изменений в вашей процедуре сборки).Кроме того, не используйте -g
, и удалите последние двоичные файлы (если это не нарушает их).