apples.ads 有点像C中的标题,你肯定需要它来编译你的文件。你应该用 -I 将gcc指向目录所在的位置 apples.ads 位于。
apples.ads
-I
请注意,编译Ada源不仅会生成目标文件,还会生成Ada库信息( .ali )文件。下一步你需要它。你不应该使用 -o 旗帜,因为它可能会导致你的 .o 和 .ali 文件名不同。
.ali
-o
.o
另一方面,由于您只想生成目标文件,因此应该使用 -c 告诉gcc只能编译。在其他语言如C,gcc默认编译和链接;在Ada,这个过程更加复杂。
-c
编译完成后,需要调用 gnatbind 在...上 .ali 主程序的文件。这会生成一个包,它将负责所有内容的正确初始化。要做到这一点, gnatbind 需要的 .ali 的文件 Apples 包!你可以指定 .ali 搜索目录 -aO 。
gnatbind
Apples
-aO
最后, gnatlink 呼吁主要 .ali 文件将所有内容链接在一起它计算出自己需要哪些目标文件和库。它将向链接器附加必要的选项,包括对引用的引用 libapples.a 。它还编译生成的包 gnatlink 。
gnatlink
libapples.a
我不确切知道是什么 gnatlink 将在引擎盖下做;你可以编译生成的包 gnatbind 手动然后调用链接器,如果你能找出正确的参数。