我想知道在嵌入式领域,GNAT支持哪些CPU架构。每个目标是否都被GNU C编译器自动支持Ada语言?
我想知道在嵌入式领域,GNAT支持哪些CPU架构。每个目标是否都被GNU C编译器自动支持Ada语言?
更重要的是,快速阅读 man gcc
没有显示语言和架构之间的任何限制。并不是说没有限制存在。
但值得注意的是,man gcc
中的以下陈述:
如果某个选项的描述没有提到源语言,则可以将该选项与所有支持的语言一起使用。
似乎暗示您的问题是可行的。
man gcc
对 -b
选项没有任何说明。 - Kim Stebel这是我为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))),)”的模式匹配行来了解GNAT是否支持特定的CPU / OS组合,此模式匹配MIPS CPU与Wind River Systems vxWorks操作系统。 或者:请参阅GCC手册第3.17节以获取硬件特定选项,http://gcc.gnu.org/onlinedocs
我将把上述链接添加到AdaCore。