我想知道 GNAT 支持哪些 CPU 架构,特别是嵌入式领域。 GNU C 编译器支持的每个目标是否也自动支持 Ada?
AdaCore 的 嵌入式开发页面 有列表。
更严重的是,快速阅读
man gcc
让我发现语言和建筑之间没有限制。并不是说一个人可能不存在。
不过,该声明很有希望:
如果特定选项的描述未提及来源 语言,您可以将该选项与所有支持的语言一起使用。
来自
man gcc
似乎暗示您的问题是“是”。
这是我为 Freenode 上的 #Ada IRC 频道撰写的事实,它回答了您的问题:
目标 x:理论上,Ada 编译器可以针对任何平台,实际上这取决于目标的硬件,即,如果目标是嵌入式的且非常有限,则可能只能在所述目标上实现 Ada 的子集。 或者:查看您感兴趣的特定目标是否可以被 Ada 定位的一个好方法是检查目标 CPU 是否受 GCC 后端支持,如果是,则查看 GNAT 是否有前端最后,它可能只支持一个子集,也可能根本不支持,在这种情况下你必须在编译器的 GNAT 前端做一些工作来支持这个目标。 或者:GCC 后端列表可以在 http://gcc.gnu.org/backends.html 找到 或者:您可以通过查看 /gcc/ada/gcc-interface/Makefile.in 中类似“ifeq ($(strip $(filter- out mips% wrs vx%,$(targ))),)" 此模式与带有 Wind River Systems vxWorks 操作系统的 MIPS CPU 相匹配。 或者:请参阅 GCC 手册第 3.17 节了解硬件特定选项,http://gcc.gnu.org/onlinedocs
我将把上面的链接添加到AdaCore。