сделать двоичный файл как можно меньше - PullRequest
2 голосов
/ 19 января 2011

У меня есть программа, написанная на C и связанная с моей статической библиотекой (.a) на C.Как я могу сделать эту программу как можно меньше, не касаясь кода (я могу перекомпилировать его и т. Д.)?

Ответы [ 3 ]

1 голос
/ 19 января 2011

Первое, что нужно сделать, это убрать все, например, символы отладки и т. Д.

В Linux вы можете использовать в терминале:

strip myexe

Вы увидите, что размер значительно уменьшится ^^

Я не гуру Windows, но если вы используете VS, используйте вариант выпуска.

На каждой платформе не используйте флаги компилятора, которые генерируют символы отладки.Если вы можете использовать флаги, которые оптимизируют размер.

И, конечно, если вы используете системные библиотеки или общие установленные библиотеки, используйте динамически связанные библиотеки (dll) или общие объекты (так).Эти библиотеки не будут включены в ваш исполняемый файл.

my2c

1 голос
/ 19 января 2011

Есть множество исполняемых упаковщиков, которые делают то, что вы хотите.Во-первых, удалите любые символы, такие как предложенный нейро (если у вас есть символы, скомпилированные в), затем используйте один из следующих исполняемых упаковщиков:

0 голосов
/ 19 января 2011

Если вы используете gcc, флаг -Os оптимизируется для небольшого исполняемого файла. Я думаю, что gcc будет пытаться связываться с общими библиотеками по умолчанию на большинстве систем, но вы также можете посмотреть на это.

...