Итак, я некоторое время играл с Ada, это потрясающий язык, но я не могу понять, как уменьшить размер исполняемых файлов (я использую GNAT 5.3 в Windows). В настоящее время размер файла hello world составляет около 800 кб. Когда я удаляю отладочную информацию, она становится ~ 222 КБ. Есть идеи, как сделать его меньше?
Как уменьшить размер исполняемых файлов, созданных с помощью GNAT?
Ответы (5)
Ada.Text_IO
характерен. Если вам не нужны все его возможности, попробуйте GNAT.IO
; в Mac OS X (FSF GCC 5.1) размер незашифрованного исполняемого файла уменьшился с 360816 байт до 166356, а размер удаленного — с 192200 до 83540.
Еще одно: по какой-то причине GNAT не использует общие библиотеки (DLL), если вы не скажете ему об этом. Принудительное динамическое связывание (gnatmake -O2 hello -bargs -shared
) уменьшило размер версии 4_ до 17520 байт (удалено 14304), а версии GNAT.IO
— до 13976 байт (удалено 11888).
-largs -dead_strip
.
- person trashgod; 09.01.2016
gnatmake file.adb -largs -s
.
- person KIM Taegyoon; 09.05.2016
Я не думаю, что имеет смысл создавать программу hello world минимального размера на Аде.
Время выполнения Ada имеет большую полезную нагрузку, чем C.
Вот обсуждение этого вопроса: https://groups.google.com/forum/#!topic/comp.lang.ada/1zvvW0Mw5Bw
Если вы просто хотите уменьшить размер исполняемого файла «Hello World», вы можете импортировать write()
и использовать его вместо Ada.Text_IO
.
К вашему сведению: стандартный Hello World на GNU/Hurd с настройкой gnatmake занимает около 16 КБ. Снято около 8,5 КБ. Никаких вычурных трюков, но, вероятно, gnat.adc с ограничениями.
В те дни, когда размер был проблемой, я иногда использовал UPX. Я считаю, что это все еще вокруг.
-Os
? - person B98   schedule 08.01.2016