Ada 编程/安装
Ada 编译器 由多个供应商提供,适用于各种主机和目标平台。 Ada 资源协会 维护着 可用编译器的列表。
下面是可用编译器的字母排序列表,并附带其他说明。
SofCheck 曾经生产过一个 Ada 95 前端,可以插入代码生成后端,从而生成一个完整的编译器。这个前端提供给编译器供应商进行许可。
基于这个前端,SofCheck 曾经提供以下产品:
- AdaMagic,一个 Ada 到 C/C++ 的翻译器
- AppletMagic,一个 Ada 到 Java 字节码编译器
SofCheck 已与 AdaCore 合并,名称为 AdaCore,AdaCore 网站上没有 AdaMagic 产品的可见痕迹。
但是,MapuSoft 现在获得了 AdaMagic 的转售许可。他们将其改名为 "Ada 到 C/C++ 转换器"。新名字听起来像是假的。几乎没有 Ada 开发人员听说过 MapuSoft。MapuSoft 从未见过开发 Ada 库,无论是商业的还是 FLOSS 的。他们也从未出现在 Ada 会议上。然而,这确实是真实的,是一个经过验证的 Ada 编译器,它了解在 C/C++ 编译器之上工作所需的许多技巧。例如,它包含经过验证的整数溢出处理知识,带有特殊的“-1”情况。
由于 MapuSoft 的存在,AdaMagic 确实变得对开发人员可用。 获取 AppCOE,但不包括 Win64 版本,安装它。在 MapuSoft/AppCOE_x32/Tools/Ada 中,将会有 AdaMagic。众所周知,AdaMagic 支持 Win64,但众所周知,Win64 的 AppCOE 完全不包含 AdaMagic。
从命令行使用 AdaMagic 在 AppCOE 中支持不佳,但仍然可以实现。设置 ADA_MAGIC 环境变量,编辑 Tools/Ada/{linux|windows}/SITE/rts_path 指向实际路径,编辑 SITE/config 去除不支持的 C 编译器键,然后通过以下命令编译:
adareg -key=`test_key | sed -e '/md5/!d;s/md5 = //'` Hello_World.adb
adabgen -key=`test_key | sed -e '/md5/!d;s/md5 = //'` Hello_World
商业;专有。
Green Hills Software 出售针对多种语言和多种目标(包括 DSP)的开发环境,主要面向嵌入式软件开发人员。
支持的语言 | Ada 83、Ada 95、C、C++、Fortran |
---|---|
运行时库许可证 | 专有,免版税。 |
本地平台 | i386 上的 GNU/Linux、i386 上的 Microsoft Windows 和 SPARC 上的 Solaris |
交叉平台 | 来自 Green Hills 的 INTEGRITY、INTEGRITY-178B 和 velOSity;来自 Wind River 的 VxWorks;多个裸机目标,包括 x86、PowerPC、ARM、MIPS 和 ColdFire/68k。经过 DO-178B A 级认证的安全关键型 GMART 和 GSTART 运行时库。 |
可从以下网址获取: | http://www.ghs.com/ |
支持 | 商业 |
包含的附加组件 | IDE、调试器、TimeMachine、与各种版本控制系统的集成、源代码浏览器、其他工具 |
GHS 声称在确保其编译器生成最高效的代码方面做出了巨大努力,并经常引用 EEMBC 基准测试结果作为证据,因为芯片制造商发布的许多结果使用 GHS 编译器来展示其芯片的最佳性能,尽管这些基准测试并非针对 Ada 特定设计。
GHS 尚未公开宣布支持最近的两个 Ada 标准(2005 和 2012),但他们确实继续积极地营销和开发其现有的 Ada 产品。
DEC Ada 是针对 OpenVMS 的 Ada 83 编译器。虽然“DEC Ada”可能是大多数用户所熟知的名称,但该编译器也被称为“HP Ada”、“VAX Ada”和“Compaq Ada”。
GNAT 是免费的 GNU Ada 编译器,是 GNU 编译器集合 的一部分。它是唯一支持语言标准所有可选附录的 Ada 编译器。最初的作者成立了公司 AdaCore 来提供专业支持、咨询、培训和定制开发服务。因此,可以从以下详细介绍的多个来源获取 GNAT。
GNAT 始终根据 GNU 通用公共许可证 的条款获得许可。
但是,运行时库使用 GPL 或 GNAT 修改的 GPL,具体取决于获取它的位置。
可以从多个地方获取几个可选附加组件
- ASIS, Ada 语义接口规范,是一个允许 Ada 程序检查和操作其他 Ada 程序的库。
- FLORIST 是一个为操作系统提供 POSIX 编程接口的库。
- GDB,GNU 调试器,带 Ada 扩展。
- GLADE 实施了附录 E,分布式系统附录。有了它,就可以用 Ada 编写分布式程序,其中运行在不同计算机上的程序分区通过网络相互通信,并与共享对象通信。
- GPS,GNAT 编程工作室,是一个功能齐全的集成开发环境,用 Ada 编写。它允许您用 Ada、C 和 C++ 进行编码。
还有许多免费软件库可用。
截至 2022 年 5 月,AdaCore 不再支持 GNAT GPL。推荐安装社区版中包含的所有工具和库的方法是使用 推荐的方式,即使用 Alire,一个用于 Ada 源代码的包管理器,也 提供工具链。虽然您仍然可以下载和安装发布的最后一个 GNAT 社区版,但不会有进一步的发布。
GNAT 社区版是 AdaCore 的源代码和二进制发行版,仅供自由软件开发人员使用。如果您想分发与 GPL 运行时库链接的二进制程序,则必须根据与 GNU 通用公共许可证兼容的条款进行分发。
截至 GNAT GPL 版 2013
支持的语言 | Ada 83、Ada 95、Ada 2005、Ada 2012、C、C++ |
---|---|
运行时库许可证 | 纯 GPL |
本地平台 | x86_64 上的 GNU/Linux;i386 上的 Microsoft Windows;Mac OS X (Darwin, x86_64)。早期版本支持 SPARC 上的 Solaris、i386 上的 GNU/Linux、i386 上的 Microsoft .NET |
交叉平台 | AVR,托管在 Windows 上;Java VM,托管在 Windows 上;Mindstorms NXT,托管在 Windows 上;ARM,托管在 Windows 和 Linux 上; |
编译器后端 | GCC 4.9 |
可从以下网址获取: | https://www.adacore.com/download |
支持 | 无 |
包含的附加组件 | 源代码和二进制形式的 GDB、GPS;许多更多仅限源代码的形式。 |
通过这些版本的 GNAT,您可以根据您选择的许可条款以二进制形式分发您的程序;您不受 GPL 约束。
这是 AdaCore 发布的最后一个使用 GNAT 修改的通用公共许可证 的 GNAT 公开版本。
GNAT 3.15p 已通过 Ada 符合性评估测试套件 (ACATS)。它于 2002 年 10 月发布。
AdaCore 的二进制发行版还包含 Ada 感知版本的 GNU 调试器 (GDB),以及 GDB 的图形前端,称为 GNU 可视调试器 (GVD)。
支持的语言 | Ada 83、Ada 95、C |
---|---|
运行时库许可证 | GNAT 修改的 GPL |
本地平台 | i386 上的 GNU/Linux(使用 glibc 2.1 或更高版本)、i386 上的 Microsoft Windows、i386 上的 OS/2 2.0 或更高版本、SPARC 上的 Solaris 2.5 或更高版本 |
交叉平台 | 无 |
编译器后端 | GCC 2.8.1 |
可从以下网址获取: | ftp://ftp.cs.kuleuven.ac.be/pub/Ada-Belgium/mirrors/gnu-ada/3.15p/ |
支持 | 无 |
包含的附加组件 | ASIS、Florist、GLADE、GDB、Gnatwin(仅限 Windows)、GtkAda 1.2、GVD |
GNAT Pro 是 GNAT 的专业版本,由 AdaCore 以订阅包的形式提供。该软件包还包括专业咨询、培训和维护服务。AdaCore 可以为本地或交叉开发提供编译器的定制版本。有关更多信息,请参见 http://www.adacore.com/。
支持的语言 | Ada 83、Ada 95、Ada 2005、Ada 2012、C,以及可选的 C++ |
---|---|
运行时库许可证 | GNAT 修改的 GPL |
本地平台 | 许多,请参见 http://www.adacore.com/home/products/gnatpro/supported_platforms/ |
交叉平台 | 许多,请参见 http://www.adacore.com/home/products/gnatpro/supported_platforms/;应要求提供更多 |
编译器后端 | GCC 4.3 |
可从以下网址获取: | http://www.adacore.com/ 订阅(商业) |
支持 | 商业;客户专属的错误数据库 |
包含的附加组件 | ASIS、Florist、GDB、GLADE、GPS、GtkAda、XML/Ada,以及许多其他源代码和二进制形式(应要求提供)。 |
自 2001 年 10 月以来,GNAT 一直是 自由软件基金会 的 GCC 的一部分。自由软件基金会不发布二进制文件,只发布源代码。它对 Ada(和其他语言)运行时库的许可允许开发专有软件,而无需强制执行 GPL 的条款。
大多数 GNU/Linux 发行版和几个其他平台的发行版包含预构建的二进制文件;见下文。
出于技术原因,我们建议不要使用 GCC 3.1、3.2、3.3 和 4.0 中包含的 Ada 编译器。相反,我们建议使用 GCC 3.4、4.1 或更高版本,或使用 AdaCore 发布的版本之一(3.15p、GPL 版或 Pro)。
自 2003 年 10 月以来,AdaCore 在 第 1 阶段 中将他们从 GNAT Pro 中的大多数更改合并到 GCC 中;这发生在每个主要版本中一次。自 GCC 3.4 以来,AdaCore 逐步增加了对修订版语言标准的支持,首先是 Ada 2005,现在是 Ada 2012。
GCC 版本 4.4 切换到 GNU 通用公共许可证的版本 3,并授予 运行时库例外,其精神类似于所有先前版本中使用的 GNAT 修改的通用公共许可证。此运行时库例外适用于所有语言的运行时库,而不仅仅是 Ada。
截至 2012-03-22 发布的 GCC 4.7
支持的语言 | Ada 83、Ada 95、Ada 2005、Ada 2012 的部分内容、C、C++、Fortran 95、Java、Objective-C、Objective-C++(以及其他) |
---|---|
运行时库许可证 | GPL 版本 3 以及 运行时库例外 |
本地平台 | 无(仅源代码) |
交叉平台 | 无(仅源代码) |
编译器后端 | GCC 4.7 |
可从以下网址获取: | http://gcc.gnu.org/ 仅限源代码形式。 |
支持 | 志愿者;公共错误数据库 |
包含的附加组件 | 无 |
GNU Ada 项目 为多个操作系统提供各种 GNAT 版本的源代码和二进制包,重要的是,还提供用于创建这些包的脚本。如果您计划将编译器移植到另一个平台或创建交叉编译器,这可能会有所帮助;有用于 GNU/Linux 和 Mac OS X 用户构建自己的 GNAT 编译器的说明。
GNAT 的 GPL 和 GMGPL 或 GCC 运行时库例外 版本均可用。
支持的语言 | Ada 83、Ada 95、Ada 2005、C。 (某些发行版还支持 Ada 2012、Fortran 90、Java、Objective C 和 Objective C++) |
---|---|
运行时库许可证 | 纯、GNAT 修改的 GPL 或 GCC 运行时库例外 |
本地平台 | Fedora Core 4 和 5、MS-DOS、OS/2、Solaris 10、SuSE 10、Mac OS X、(更多?) |
交叉平台 | 无 |
编译器后端 | GCC 2.8.1、3.4、4.0、4.1、4.2、4.3、4.4、4.5、4.6 (各种二进制包) |
可从以下网址获取: | Sourceforge |
支持 | 志愿者;公共错误数据库 |
包含的附加组件 | AdaBrowse、ASIS、Booch Components、Charles、GPS、GtkAda (更多?) |
此编译器具有历史意义,因为它现在已合并到 GNAT GPL 版 和 GNAT Pro 中。
A# 是 Ada 到 .NET 平台 的移植。A# 最初是在美国空军学院计算机科学系开发的,该系根据 GNU 通用公共许可证的条款将 A# 分发给 Ada 社区。A# 与 Microsoft Visual Studio 2005、AdaGIDE 和 RAPID 开源 GUI 设计工具很好地集成。截至 2006-06-06
支持的语言 | Ada 83、Ada 95、C |
---|---|
运行时库许可证 | 纯 GPL |
本地平台 | Microsoft .NET |
交叉平台 | 无 |
编译器后端 | GCC 3.4(GNAT GPL 2006 版?) |
可从以下网址获取: | http://sourceforge.net/projects/asharp/ |
支持 | 无(但请参见 GNAT Pro) |
包含的附加组件 | 无。 |
Rolf Ebert 及其他人提供了配置为交叉编译器到各种 AVR 微控制器 的 GNAT 版本,以及适用于在微控制器上使用的实验性 Ada 运行时库。截至版本 1.1.0(2010-02-25)
支持的语言 | Ada 83、Ada 95、Ada 2005、C |
---|---|
运行时库许可证 | GNAT 修改的 GPL |
主机平台 | GNU/Linux 和 Microsoft Windows 在 i386 上 |
目标平台 | 各种 AVR 8 位微控制器 |
编译器后端 | GCC 4.7 |
可从以下网址获取: | http://avr-ada.sourceforge.net/ |
支持 | 志愿者;公共错误数据库 |
包含的附加组件 | 部分 Ada 运行时系统,AVR 外设支持库 |
马德里理工大学 (UPM, Universidad Politécnica de Madrid) 的实时研究小组为在 LEON 处理器 上执行编写了符合 Ravenscar 标准的实时内核,以及经过修改的运行时库。他们还提供了一个 GNAT 交叉编译器。截至 2.0.1 版本
支持的语言 | Ada 83、Ada 95、Ada 2005、C |
---|---|
运行时库许可证 | 纯 GPL |
本地平台 | 无 |
交叉平台 | GNU/Linux 在 i686 上到 LEON2 裸板 |
编译器后端 | GCC 4.1 (GNAT GPL 2007 版) |
可从以下网址获取: | http://www.dit.upm.es/ork/ |
支持 | ? |
包含的附加组件 | OpenRavenscar 实时内核;最小运行时库 |
GNAT for Macintosh 提供了 FSF (GMGPL) 和 AdaCore (GPL) 两个版本的 GNAT,并与 Xcode 和 Carbon 集成和绑定。
请注意,该网站上次更新针对的是 GCC 4.3 和 Mac OS X Leopard(PowerPC 和 Intel 架构)。除了与 Apple 的 Carbon 图形用户界面和 Xcode 3.1 集成方面的工作之外,建议 查看以上内容。
您还可以在 MacPorts 获得支持;最后更新(截至 2011 年 11 月 25 日)针对的是 GCC 4.4.2。
许多发行版包含 GCC 或 AdaCore 发布的各种 GNAT 的预编译二进制文件。发行版之间的质量差异很大。以下发行版列表按字母顺序排列。(请保持这种顺序。)
AIDE — Ada Instant Development Environment 是一款适用于 Windows 的完整的“一键式”即用型 Ada 发行版,包含 GNAT、全面的文档、工具和库。所有内容均已预编译,并且还提供源代码。安装过程非常简单(只需解压缩到默认的 c:\aide 并运行)。AIDE 适用于初学者和教师,但高级用户也可以使用。
支持的语言 | Ada 83、Ada 95、C |
---|---|
运行时库许可证 | GNAT 修改的 GPL |
本地平台 | Microsoft Windows 在 i386 上 |
交叉平台 | 无 |
编译器后端 | GCC 2.8.1 |
可从以下网址获取: | https://stef.genesix.org/aide/aide.html |
支持 | [email protected] |
包含的附加组件 | ASIS、GDB、GPS、GtkAda、Texinfo(更多?) |
Cygwin 是一款面向 Windows 的类似 Linux 的环境,它也包含 GNAT 编译器的版本。Cygwin 版本的 GNAT 比 MinGW 版本旧,并且不支持 DLL 和多线程(截至 2004 年 11 月)。
有一个 Debian Ada 策略,旨在使 Debian 成为最佳的 Ada 开发和部署平台。开发平台包括编译器和许多库,这些库都是预先打包和集成的,便于在任何程序中使用。部署平台是著名的稳定版 发行版,适用于关键任务工作负载,并且生命周期很长,通常为 3 到 4 年。由于 Debian 是一个二进制发行版,因此可以在其上部署非免费的、仅二进制的程序,同时享受稳定平台的所有优势。出于这个原因,编译器选择比较保守,策略规定所有 Ada 程序和库都必须使用相同版本的 GNAT 进行编译。这使得可以在同一程序中使用所有库。Debian 将运行时库与开发包分开,以便最终用户不必为了运行程序而安装开发系统。
可以使用以下命令在 Debian 系统上安装 GNU Ada 编译器
aptitude install gnat
这还会提供一个相关的软件包列表,这些软件包可能对 Ada 程序员有用。
Debian 的独特之处在于,它还允许程序员使用 GNAT 的一些内部组件,方法是使用两个库
- libgnatvsn(根据 GNAT-Modified GPL 许可)和
- libgnatprj(项目管理器,根据纯 GPL 许可)。
Debian 软件包利用了这些库。
在下表中,有关未来 Debian 8.0 Jessie 的信息截至 2014 年 10 月是准确的,并且会发生变化。
3.1 Sarge | 4.0 Etch | 5.0 Lenny | 6.0 Squeeze | 7.0 Wheezy | 8.0 Jessie | |
---|---|---|---|---|---|---|
发布日期 | 2005 年 6 月 | 2007 年 4 月 | 2009 年 2 月 | 2011 年 2 月 | 2013 年 5 月 | 2015 年 4 月 |
支持的语言 | Ada 83、Ada 95、C | +Ada 2005,Ada 2012 的部分内容,C、C++、Fortran 95、Java、Objective-C、Objective-C++ | +Ada 2012 | |||
运行时库许可证 | GNAT-modified GPL(从 5.0 Lenny 开始的 ZCX 和 SJLJ 两个版本) | GPL 版本 3,包含运行时库例外 | ||||
本地平台 | 3.1 Sarge | 4.0 Etch | 5.0 Lenny | 6.0 Squeeze | 7.0 Wheezy | 8.0 Jessie |
alpha | 是 | 是 | ||||
amd64 | 是 | 是 | 是 | 是 | 是 | |
armel | 初步 | 是 | 是 | |||
armhf | 是 | 是 | ||||
hppa | 是 | 是 | 是 | |||
hurd-i386 | 是 | 是 | ||||
i386 | 是 | 是 | 是 | 是 | 是 | 是 |
ia64 | 是 | 是 | 是 | 是 | ||
kfreebsd-amd64 | 是 | 是 | 是 | |||
kfreebsd-i386 | 是 | 是 | 是 | 是 | 是 | |
mips | 是 | 是 | 是 | 是 | 是 | |
mipsel | 是 | 是 | 是 | 是 | 是 | |
powerpc | 是 | 是 | 是 | 是 | 是 | 是 |
ppc64 | 是 | 是 | 是 | 是 | ||
s390 | 是 | 是 | 是 | 是 | s390x | |
sparc | 是 | 是 | 是 | 是 | 是 | 是 |
交叉平台 | 无 | |||||
编译器后端 | GCC 2.8.1 | GCC 4.1 | GCC 4.3 | GCC 4.4 | GCC 4.6 | GCC 4.9 |
可从以下网址获取: | http://www.debian.org/ | |||||
支持 | 志愿者;公开错误数据库;第三方提供付费支持;公开邮件列表 | |||||
包含的附加组件 | 3.1 Sarge | 4.0 Etch | 5.0 Lenny | 6.0 Squeeze | 7.0 Wheezy | 8.0 Jessie |
ada-reference-manual | 1995 | 1995 | 1995 | 2005 | 2012 | 2012 |
AdaBindX | 0.7.2 | |||||
AdaBrowse | 4.0.2 | 4.0.2 | 4.0.2 | 4.0.3 | 4.0.3 | - |
AdaCGI | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 |
AdaControl | 1.6r8 | 1.9r4 | 1.12r3 | 1.12r3 | 1.16r11 | |
APQ(与 PostgreSQL 配合使用) | 3.0 | 3.2 | 3.2 | |||
AdaSockets | 1.8.4.7 | 1.8.4.7 | 1.8.4.7 | 1.8.8 | 1.8.10 | 1.8.11 |
Ahven | 1.2 | 1.7 | 2.1 | 2.4 | ||
Alog | 0.1 | 0.3 | 0.4.1 | - | ||
anet | 0.1 | 0.3.1 | ||||
ASIS | 3.15p | 2005 | 2007 | 2008 | 2010 | 2014 |
AUnit | 1.01 | 1.03 | 1.03 | 1.03 | 1.03 | 3.7.1 |
AWS | 2.0 | 2.2 | 2.5 预发布版 | 2.7 | 2.10.2 | 3.2.0 |
Charles | 2005-02-17 | (已被 gnat 中的 Ada.Containers 取代) | ||||
Florist | 3.15p | 2006 | 2006 | 2009 | 2011 | 2014 |
GDB | 5.3 | 6.4 | 6.8 | 7.0.1 | 7.4.1 | 7.7.1 |
GLADE | 3.15p | 2006 | (已被 PolyORB 取代) | |||
GMPAda | 0.0.20091124 | 0.0.20120331 | 0.0.20131223 | |||
GNADE | 1.5.1 | 1.6.1 | 1.6.1 | 1.6.2 | 1.6.2 | - |
GNAT Checker | 1999-05-19 | (已被 AdaControl 取代) | ||||
GPRBuild | 1.3.0w | 2011 | 2014 | |||
GPS | 2.1 | 4.0.1 | 4.0.1 | 4.3 | 5.0 | 5.3 |
GtkAda | 2.4 | 2.8.1 | 2.8.1 | 2.14.2 | 2.24.1 | 2.24.4 |
Log4Ada | 1.0 | 1.2 | 1.2 | |||
Narval | 1.10.2 | |||||
OpenToken | 3.0b | 3.0b | 3.0b | 4.0b | 4.0b | 5.0a |
PC/SC Ada | 0.6 | 0.7.1 | 0.7.2 | |||
PolyORB | 2.6 预发布版 | 2.8 预发布版 | 2.11 预发布版 | |||
PLPlot | 5.9.0 | 5.9.5 | 5.9.5 | 5.10.0 | ||
模板解析器 | 10.0+20060522 | 11.1 | 11.5 | 11.6 | 11.8 | |
TextTools | 2.0.3 | 2.0.3 | 2.0.5 | 2.0.6 | 2.1.0 | |
XML/Ada | 1.0 | 2.2 | 3.0 | 3.2 | 4.1 | 4.4 |
XML-EZ-out | 1.06 | 1.06.1 | 1.06.1 |
ADT 针对 Eclipse 的插件(请参阅 ObjectAda from Aonix 部分)可与 Debian Etch 打包的 GNAT 配合使用。将“/usr”指定为工具链路径。
DJGPP 是将包含 GNU 实用程序在内的综合集合移植到具有 32 位扩展的 MS-DOS,并积极支持(截至 2005 年 1 月)。它包含整个 GCC 编译器集合,现在也包含 Ada。请参阅 DJGPP 网站以获取安装说明。
DJGPP 程序也可以在 Windows 的 DOS 命令框中运行,以及在原生 MS-DOS 系统中运行。
FreeBSD 的 ports 仓库 包含一个 Ada 框架,以及不断扩充的软件包集合。该框架目前由 FSF GCC 6.3.1 构建,虽然可以选择使用 FSF GCC 5.4 代替。AdaCore GPL 编译器不可用。造成这种情况的原因有很多,其中一个主要原因是维护多个编译器的开销很大。ports 中也不包含任何非 GCC 的 Ada 编译器。
虽然 FreeBSD 会为每个版本提供快照,但 ports 仓库正在不断更新,大多数用户更喜欢使用包含最新软件包的“头部”ports。
支持的语言 | Ada 83, Ada 95, Ada 2005, Ada 2012, C, C++, ObjC, Fortran |
---|---|
运行时库许可证 | GPLv3 附带运行时库例外 v3 |
本地平台 | FreeBSD i386, FreeBSD AMD64, FreeBSD ARM64, DragonFly x86-64 |
交叉平台 | FreeBSD/DragonFly->Android (支持 ARMv7 和 x86),FreeBSD/DragonFly->FreeBSD/ARM64 (支持 Aarch64) |
编译器后端 | GCC 6.3.1 |
可从以下网址获取: | https://freebsd.ac.cn, https://github.com/DragonFlyBSD/DPorts |
支持 | 志愿者;公共错误数据库 |
安装软件有两种方法。最快速、最简单的方法是使用命令“pkg install <pkg name>”安装预构建的二进制文件。例如,要安装 GNAT 编程工作室及其所有依赖项(包括 GNAT 编译器),只需要执行一条命令:
pkg install gps-ide
如果某个特定软件包不可用,或者用户只是更喜欢从源代码构建(这可能需要很长时间),那么可以使用以下命令:
cd /usr/ports/devel/gps && make install clean
与二进制安装一样,如果缺少任何依赖项,也会先从源代码构建它们。
截至 2017 年 2 月 8 日的可用软件
目录 | 常用名称 | 版本 | pkg 名称 |
---|---|---|---|
archivers/zip-ada | Zip-Ada (库) | 52 | zip-ada |
cad/ghdl | GNU VHDL 模拟器 | 0.33 | ghdl |
databases/adabase | 与 Postgres、MySQL 和 SQLite 的紧密绑定 | 3.0 | adabase |
databases/apq | Ada95 数据库接口库 | 3.2.0 | apq |
databases/apq-mysql | APQ MySQL 驱动程序 | 3.2.0 | apq-mysql |
databases/apq-odbc | APQ ODBC 驱动程序 | 3.2.0 | apq-odbc |
databases/apq-pgsql | APQ PostgreSQL 驱动程序 | 3.2.0 | apq-pgsql |
devel/ada-util | Ada 2005 应用程序实用程序 (库) | 1.8.0 | ada-util |
devel/adaid | UUID 生成库 | 0.0.1 | adaid |
devel/adabooch | Ada95 Booch 组件 (库) | 2016-03-21 | adabooch |
devel/adacurses | AdaCurses (绑定) | 2015-08-08 | adacurses |
devel/afay | AFlex 和 AYACC 解析器生成器 | 041111 | afay |
devel/ahven | Ahven (单元测试库) | 2.6 | ahven |
devel/alog | 可堆叠日志记录框架 | 0.5.2 | alog |
devel/aunit | 单元测试框架 | 2016 | aunit |
devel/florist-gpl | Florist (Posix 绑定) | 2016 | florist-gpl |
devel/gnatcoll | GNAT 组件集合 | 2016 | gnatcoll |
devel/gnatpython | GNATPython (基于 python 的测试框架) | 2014-02-24 | gnatpython |
devel/gprbuild | GPRbuild (多语言构建工具) | 20160609 | gprbuild |
devel/gps | GNAT 编程工作室 | 2016 | gps-ide |
devel/libspark2012 | SPARK 2012 库源文件 | 2012 | libspark2012 |
devel/matreshka | Matreshka (信息系统库) | 0.7.0 | matreshka |
devel/pcsc-ada | PCSC 库 | 0.7.3 | pcsc-ada |
devel/pragmarcs | PragmAda 可重用组件 | 20161207 | pragmarcs |
devel/sdl_gnat | GNAT SDL 绑定 (精简) | 2013 | sdl_gnat |
devel/simple_components | 简单的 Ada 组件 | 4.18 | simple_components |
dns/ironsides | Spark/Ada Ironsides DNS 服务器 | 2015-04-15 | ironsides |
graphics/generic_image_decoder | 图像解码库 | 05 | generic_image_decoder |
lang/adacontrol | AdaControl (构造检测工具) | 1.17r3 | adacontrol |
lang/asis | Ada 语义接口规范 | 2016 | asis |
lang/gcc5-aux | GNAT Ada 编译器 (FSF GCC) | 5.4 (2016-06-03) | gcc5-aux |
lang/gcc6-aux | GNAT Ada 编译器 (FSF GCC) | 6.3.1 (2017-02-02) | gcc6-aux |
lang/gnat_util | GNAT 源代码 (辅助库) | 2017-02-02 | gnat_util |
lang/gnatcross-aarch64 | FreeBSD/ARM64 交叉编译器,Aarch64 | 2017-02-02 (6.3.1) | gnatcross-aarch64 |
lang/gnatcross-binutils-aarch64 | FreeBSD/ARM64 交叉编译器使用的 GNU Binutils | 2.27 | gnatcross-binutils-aarch64 |
lang/gnatcross-sysroot-aarch64 | FreeBSD/ARM64 sysroot | 1 | gnatcross-sysroot-aarch64 |
lang/gnatdroid-armv7 | Android 5.0 交叉编译器,ARMv7 | 2017-02-02 (6.3.1) | gnatdroid-armv7 |
lang/gnatdroid-binutils | Android 交叉编译器使用的 GNU Binutils | 2.27 | gnatdroid-binutils |
lang/gnatdroid-binutils-x86 | Android 交叉编译器使用的 GNU Binutils (x86) | 2.27 | gnatdroid-binutils-x86 |
lang/gnatdroid-sysroot | Android API 4.0 到 6.0 sysroot | 23 | gnatdroid-sysroot |
lang/gnatdroid-sysroot-x86 | Android API 4.4 到 6.0 sysroot (x86) | 23 | gnatdroid-sysroot-x86 |
lang/gnatdroid-x86 | Android 5.0 交叉编译器,x86 | 2017-02-02 (6.3.1) | gnatdroid-x86 |
lang/lua-ada | Lua 的 Ada 绑定 | 1.0 | ada-lua |
math/plplot-ada | PLplot Ada 绑定 | 5.12.0 | plplot-ada |
misc/excel-writer | Excel 输出库 | 15 | excel-writer |
misc/ini_file_manager | 配置文件库 | 03 | ini_file_manager |
net/adasockets | IPv4 套接字库 | 1.10 | adasockets |
net/anet | 网络库 (IPv4 和 IPv6) | 0.3.4 | anet |
net/polyorb | PolyORB (CORBA/SOAP/DSA 中间件) | 2.11.1 (2014) | polyorb |
security/libadacrypt | 密码学库 (对称 & 非对称) | 20151019 | libadacrypt |
security/libsparkcrypto | LibSparkCrypto (密码学库) | 0.1.1 | libsparkcrypto |
shells/sparforte | 针对任务关键型项目的 shell 和脚本语言 | 2.0.2 | spareforte |
textproc/adabrowse | AdaBrowse (Ada95 HTML 文档生成器) | 4.0.3 | adabrowse |
textproc/opentoken | Ada 词法分析器和解析器 | 6.0b | opentoken |
textproc/py-sphinxcontrib-adadomain | 用于 Ada 的 Sphinx 文档生成器 | 0.1 | py27-sphinxcontrib-adadomain |
textproc/templates_parser | AWS 模板解析器库 | 17.0.0 | templates_parser |
textproc/words | Words (拉丁语/英语词典) | 1.97F | words |
textproc/xml_ez_out | XML 输出 (库) | 1.06 | xml_ez_out |
textproc/xmlada | XML/Ada (库) | 17.0.0 | xmlada |
www/aws | Ada Web 服务器 | 17.0.1 | aws |
www/aws-demos | Ada Web 服务器演示 | 17.0.1 | aws-demos |
x11-toolkits/gtkada | GTK2/Ada (绑定) | 2.24.4 | gtkada |
x11-toolkits/gtkada3 | GTK3/Ada (绑定) | 3.14.2 | gtkada3 |
Gentoo GNU/Linux
[edit | edit source]可以使用 emerge 在 Gentoo 系统上安装 GNU Ada 编译器。
emerge dev-lang/gnat
与 Debian 不同,Gentoo 主要是一个源代码发行版,因此许多软件包只能以源代码形式提供,需要用户重新编译它们(使用 emerge)。
同样与 Debian 不同,Gentoo 支持在同一系统上并行使用多个版本的 GNAT。请谨慎操作,因为并非所有附加组件和库都适用于所有版本的 GNAT。
支持的语言 | Ada 83, Ada 95, Ada 2005, C (更多?) |
---|---|
运行时库许可证 | 纯 GPL 或 GNAT 修改后的 GPL(两者均可用) |
本地平台 | amd64、powerpc 和 i386 上的 Gentoo GNU/Linux |
交叉平台 | 无 |
编译器后端 | GCC 3.4、4.1(各种二进制软件包) |
可从以下网址获取: | https://gentoolinux.cn/(查看其他 Gentoo dev-ada 软件包) |
支持 | 志愿者;公共错误数据库 |
包含的附加组件 | AdaBindX, AdaBroker, AdaDoc, AdaOpenGL, AdaSockets, ASIS, AUnit, Booch 组件, CBind, Charles, Florist, GLADE, GPS, GtkAda, XML/Ada |
Mandriva Linux
[edit | edit source]可以使用以下命令在 Mandriva 系统上安装 GNU Ada 编译器:
urpmi gnat
MinGW (适用于 Microsoft Windows)
[edit | edit source]MinGW — Minimalist GNU for Windows 包含一个版本的 GNAT 编译器。
当前版本的 MinGW (5.1.6) 包含 gcc-4.5.0。这包含一个功能齐全的 GNAT 编译器。如果自动下载器无法正常工作,可以从 MinGW/BaseSystem/GCC/Version4/ 直接下载编译器:选择 gcc-4.5.0-1。
旧说明
[edit | edit source]以下列表将帮助您进行安装。(我可能遗漏了一些内容 - 但这是维基百科,请随时添加内容)
- 安装 MinGW-3.1.0-1.exe
- 解压缩 binutils-2.15.91-20040904-1.tar.gz
- 解压缩 mingw-runtime-3.5.tar.gz
- 解压缩 gcc-core-3.4.2-20040916-1.tar.gz
- 解压缩 gcc-ada-3.4.2-20040916-1.tar.gz
- 解压缩 gcc-g++-3.4.2-20040916-1.tar.gz (可选)
- 解压缩 gcc-g77-3.4.2-20040916-1.tar.gz (可选)
- 解压缩 gcc-java-3.4.2-20040916-1.tar.gz (可选)
- 解压缩 gcc-objc-3.4.2-20040916-1.tar.gz (可选)
- 解压缩 w32api-3.1.tar.gz
- 安装 mingw32-make-3.80.0-3.exe (可选)
- 安装 gdb-5.2.1-1.exe (可选)
- 安装 MSYS-1.0.10.exe (可选)
- 安装 msysDTK-1.0.1.exe (可选)
- 解压缩 msys-automake-1.8.2.tar.bz2 (可选)
- 解压缩 msys-autoconf-2.59.tar.bz2 (可选)
- 解压缩 msys-libtool-1.5.tar.bz2 (可选)
我建议将 D:\MinGW 作为所有安装和解压缩的目标目录。
值得注意的是,来自 Libre 的 GNAT 的 Windows 版本也是基于 MinGW 的。
在 MinGW 网站上的 gcc-3.4.2-release_notes.txt 中写道:请检查 /lib/gcc/mingw32/3.4.2/adainclude 和 adalib 目录中的文件是否被标记为只读。此属性对于防止使用 gnatclean 清理项目时删除它们是必要的。
因此,请务必执行此操作。
OpenCSW 提供了 GCC 3.4.6 和 4.6.2 的二进制软件包,并支持 Ada。软件包名称分别为 gcc3ada 和 gcc4ada。
支持的语言 | Ada 83、Ada 95、部分 Ada 2005、C、C++、Fortran 95、Java、Objective-C、Objective-C++ |
---|---|
运行时库许可证 | GNAT 修改的 GPL |
本地平台 | Oracle Solaris 和 OpenSolaris(运行在 SPARC 和 x86 上) |
交叉平台 | 无 |
编译器后端 | GCC 3.4.6 和 4.6.2(均可用) |
支持 | ? |
可从以下网址获取: | http://www.opencsw.org/ |
包含的附加组件 | 无(?) |
可移植软件包文件系统 pkgsrc 拥有一个小型 Ada 框架。它目前基于 FSF GCC 5.4,并且 FSF GCC 6.2 也可用。AdaCore GPL 版本不存在,也不存在基于非 GCC 的编译器。
pkgsrc 系统以季度分支的形式发布,通常建议使用这些分支。但是,用户也可以选择“头部”,这将是最新的软件包版本。pkgsrc 系统支持 21 个平台,但对于 Ada,由于引导编译器的要求,它可能仅限于 5 个平台:NetBSD、DragonFly、SunOS(Solaris/Illumos)、OpenBSD/MirBSD 和 FreeBSD。
支持的语言 | Ada 83, Ada 95, Ada 2005, Ada 2012, C, C++, ObjC, Fortran |
---|---|
运行时库许可证 | GPLv3 附带运行时库例外 v3 |
本地平台 | NetBSD i386 和 amd64、DragonFly x86-64、FreeBSD i386 和 amd64、Solaris i386 和 x86_64 |
交叉平台 | 无 |
编译器后端 | GCC 5.4(GCC 4.9 和 6 可用) |
可从以下网址获取: | http://www.pkgsrc.org,状态:http://www.pkgsrc.se |
支持 | 志愿者;公共错误数据库 |
有两种方法可以安装软件。最快速、最简单的方法是使用命令“pkg_add <pkg name>”安装预编译的二进制文件。例如,要安装 GNAT Programming Studio 及其所有依赖项(包括 GNAT 编译器),您只需要一个命令即可。
pkg_add gps
如果某个特定软件包不可用,或者用户只是更喜欢从源代码构建(这可能需要很长时间),那么可以使用以下命令:
cd /usr/pkg/devel/gps && bmake install
与二进制安装一样,如果缺少任何依赖项,也会先从源代码构建它们。
截至 2016 年 12 月 14 日的可用软件
目录 | 常用名称 | 版本 | pkg 名称 |
---|---|---|---|
cad/ghdl | GNU VHDL 模拟器 | 0.32rc1 | ghdl |
devel/florist | Florist (Posix 绑定) | 2012 | florist-gpl |
devel/gnatpython | GNATPython (基于 python 的测试框架) | 2011-09-12 | gnatpython |
devel/gprbuild-aux | GPRbuild (多语言构建工具) | 2016-06-09 | gprbuild-aux |
lang/gcc-aux | GNAT Ada 编译器 (FSF GCC) | 4.9.2 (2014-10-23) | gcc-aux |
lang/gcc5-aux | GNAT Ada 编译器 (FSF GCC) | 5.4.0 (2016-06-03) | gcc5-aux |
lang/gcc6-aux | GNAT Ada 编译器 (FSF GCC) | 6.2.0 (2016-08-22) | gcc6-aux |
textproc/xmlada | XML/Ada (库) | 4.4.0 | xmlada |
www/aws | Ada Web 服务器 | 3.1.0.0 (w) | aws |
www/aws-demos | Ada Web 服务器演示 | 3.1.0.0 (w) | aws-demos |
x11/gtkada | GTK/Ada(绑定) | 2.24.4 | gtkada |
所有版本的 SuSE Linux 都包含 GNAT 编译器。SuSE 9.2 及更高版本还包含 ASIS、Florist 和 GLADE 库。需要以下两个软件包。
gnat gnat-runtime
对于 SuSE 12.1 版本,编译器位于软件包中。
gcc46-ada libada46
对于 64 位系统,您还需要 32 位兼容性软件包。
gnat-32bit gnat-runtime-32bit
Ubuntu(及其衍生产品,如 Kubuntu、Xubuntu 等)是基于 Debian 的 Linux 发行版,因此可以使用 上面描述的安装过程。图形化软件包管理器(如 Synaptic 或 Adept)也可以用于选择 Ada 软件包。
Irvine Compiler Corporation 为各种平台提供原生和交叉编译器。[1] 编译器和运行时系统支持开发经过认证的安全关键型软件。
商业、专有。可以按要求进行免费评估。允许免费重新分发运行时系统。
RR Software 提供了针对 MS-DOS、Microsoft Windows 以及各种 Unix 和类 Unix 系统的原生编译器,以及用于 Windows GUI 编程的库 CLAW。提供学术版、个人版和专业版,以及支持选项。
Janus/Ada 95 支持 Ada 2007 和 Ada 2012 特性的子集。.
商业软件,但价格相对便宜;专有。
Concurrent 提供了 MAXAda,这是一种针对 Linux/Xeon 和 PowerPC 平台的 Ada 95 编译器,以及 Ada 与 POSIX 和 X/Motif 的绑定。[2]
商业、专有。
PTC 提供了 ObjectAda 原生(Windows、某些版本的 Unix 和 Linux)和交叉(PPC、Intel、VxWorks 和 ERC32)编译器。
提供对 Ada 2012 的有限支持。
商业、专有。
OC Systems 提供 Ada 编译器以及与 POSIX 和 X-11 的绑定。
- PowerAda,一种针对 Linux 和 AIX 的 Ada 95 编译器。
- LegacyAda/390,一种针对 IBM System 370 和 390 大型机的 Ada 83 编译器。
商业、专有。
PTC ApexAda,适用于原生和嵌入式开发。
商业、专有。
DDC-I 提供了其用于嵌入式开发的交叉编译器 SCORE。SCORE 代表安全关键、面向对象、实时嵌入式。
商业、专有。
Tartan 提供 Tartan Ada Development System (TADS),包含针对某些数字信号处理器的交叉编译器。
商业、专有。
XD Ada 是一种用于嵌入式开发的 Ada 83 交叉编译器。主机包括运行 OpenVMS 的 VAX、Alpha 和 Integrity 服务器。目标包括 Motorola 68000 和 MIL-STD-1750A 处理器。
商业、专有。
XGC 编译器是带有自定义运行时库的 GCC,适合航空电子和空间应用。运行时内核非常小,不支持异常传播(即,您只能在引发异常的子程序中处理异常)。
商业软件,但某些版本也提供免费下载。免费软件。
支持的语言 | Ada 83、Ada 95、C |
---|---|
运行时库许可证 | GNAT 修改的 GPL |
本地平台 | 无 |
交叉平台 | 主机:sun-sparc-solaris、pc-linux2*;目标是带有 ERC32、MIL-STD-1750A、摩托罗拉 68000 系列或 英特尔 32 位 处理器的裸板。 PowerPC 和 英特尔 80186 目标可应要求提供。 |
编译器后端 | GCC 2.8.1 |
可从以下网址获取: | http://www.xgc.com/ |
支持 | 商业 |
包含的附加组件 | 符合 Ravenscar 标准的运行时内核,已通过航空航天应用认证;gdb 交叉调试器;目标模拟器。 |