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

时间:2016-01-08 19:55:59

标签: ada gnat

所以我已经和Ada玩了一段时间了,这是一种很棒的语言,但我无法弄清楚如何让可执行文件更小(我在Windows上使用GNAT 5.3)。目前,hello world的文件大小约为800 kb。当我剥离调试信息时它变成~222 kb。任何想法如何使它变小?

5 个答案:

答案 0 :(得分:6)

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剥离)。

答案 1 :(得分:4)

我不认为在Ada中获得最小尺寸的hello world程序是非常有意义的。

Ada的运行时间确实比C的有效载荷更大。

以下是对它的讨论: https://groups.google.com/forum/#!topic/comp.lang.ada/1zvvW0Mw5Bw

答案 2 :(得分:1)

FYI:GNU / Hurd上的标准Hello World及其gnatmake设置约为16kB。剥离约8.5kB。没有花哨的花样,但可能带有限制的gnat.adc。

答案 3 :(得分:0)

在尺寸问题的日子里,我偶尔会使用UPX。我相信它还在。

答案 4 :(得分:0)

如果您只想让“Hello World”可执行文件变小,则可以导入write()并使用该Ada.Text_IO而不是 queryM.equalTo("id", threadParent.objectId); // doesn't work