Как сделать исполняемые файлы, сделанные с GNAT меньше?

Так что я некоторое время играл с Ada, это потрясающий язык, но я не могу понять, как сделать исполняемые файлы меньше (я использую GNAT 5.3 для Windows). В настоящее время размер файла hello world составляет около 800 кб. Когда я раздеваю отладочную информацию, она становится ~222 кб. Есть идеи, как сделать его меньше?

4 ответа

Ada.Text_IO является характерным. Если вам не нужны все его возможности, попробуйте GNAT.IO; в Mac OS X (FSF GCC 5.1) исполняемый файл со свободным доступом уменьшился с 360816 байт до 166356, а с 192200 до 83540 был вырезан.

Другое дело: по какой-то причине GNAT не использует разделяемые библиотеки (DLL), если вы не сообщите об этом. Принудительное динамическое связывание (gnatmake -O2 hello -bargs -shared) уменьшил Ada.Text_IO версия до 17520 байт (14304 разделенных), а GNAT.IO версия до 13976 байт (разделена на 11888).

Я не думаю, что очень важно иметь минимальную программу Hello World в Аде.

Ада во время выполнения имеет большую полезную нагрузку, чем Си.

Вот обсуждение этого: https://groups.google.com/forum/

К сведению: Стандартный Hello World на GNU/Hurd с настройкой gnatmake составляет около 16 КБ. Снято около 8,5 КБ. Никаких хитростей, но, вероятно, gnat.adc с ограничениями.

Если вы просто хотите уменьшить размер исполняемого файла Hello World, вы можете импортировать write() и использовать это вместо Ada.Text_IO,

В те дни, когда размер был проблемой, я иногда использовал UPX. Я верю, что это все еще вокруг.

Другие вопросы по тегам