Ada 如何使用GNAT制作的可执行文件变小?

Ada 如何使用GNAT制作的可执行文件变小?,ada,gnat,Ada,Gnat,所以我已经使用Ada一段时间了,它是一种很棒的语言,但我不知道如何使可执行文件更小(我在windows上使用GNAT 5.3)。目前,hello world的文件大小约为800 kb。当我剥离调试信息时,它变为约222KB。有没有办法把它变小 我认为在Ada中获得最小规模的hello world程序不是很有意义 Ada的运行时确实比C的负载更大 以下是关于它的讨论: Ada.Text\u IO很有特色。如果您不需要它的所有功能,请尝试GNAT.IO;在Mac OS X(FSF GCC 5.1)上

所以我已经使用Ada一段时间了,它是一种很棒的语言,但我不知道如何使可执行文件更小(我在windows上使用GNAT 5.3)。目前,hello world的文件大小约为800 kb。当我剥离调试信息时,它变为约222KB。有没有办法把它变小

我认为在Ada中获得最小规模的hello world程序不是很有意义

Ada的运行时确实比C的负载更大

以下是关于它的讨论:
Ada.Text\u IO
很有特色。如果您不需要它的所有功能,请尝试
GNAT.IO
;在Mac OS X(FSF GCC 5.1)上,未剥离的可执行文件从360816字节减少到166356字节,从192200剥离到83540字节


另一件事:出于某种原因,GNAT不使用共享库(DLL),除非您告诉它。强制动态链接(
gnatmake-O2 hello-bargs-shared
)将
Ada.Text\u IO
版本减少到17520字节(14304个剥离),将
GNAT.IO
版本减少到13976字节(11888个剥离)。

在大小成问题的日子里,我偶尔使用UPX。我相信它仍然存在。

如果你只是想让“Hello World”的可执行文件变得更小,你可以导入
write()
并使用它来代替
Ada。Text\u IO

仅供参考:GNU/Hurd上的标准Hello World及其gnatmake设置大约为16kB。剥离约8.5kB。没有花哨的技巧,但可能gnat.adc有限制。

用户指南中有一节介绍如何减小可执行文件的大小。它过去是关于gnatelim的,但最近的方式可能已经改变了。您是否尝试过这些建议,例如,可能的选项
-Os
?@B98是的,我读过。Gnatelim在windows上似乎不起作用,至少mingw-w64没有Gnatelim。我试过“-ffunction sections-fdata sections-Wl、-gc sections”,但没有任何帮助-OS不帮助乙醚。对于达尔文的目标,也考虑<代码> -大-死区条< /代码>。考虑<代码> GATAtudio文件.ADB-GRAIMS-S < /代码>。