Ada 编程/安装
Ada 编译器 由多个供应商提供,可在各种主机和目标平台上使用。 Ada 资源协会 维护着一个 可用编译器列表。
以下是按字母顺序排列的可用编译器列表,并附带其他说明。
SofCheck 过去曾提供 Ada 95 前端,可以将其插入代码生成后端以生成完整的编译器。该前端被提供给编译器供应商进行许可。
基于此前端,SofCheck 过去曾提供
- AdaMagic,一种 Ada 到 C/C++ 翻译器
- AppletMagic,一种 Ada 到 Java 字节码编译器
SofCheck 已 与 AdaCore 合并,并以 AdaCore 的名义运作,AdaCore 网站上已没有 AdaMagic 产品的可见痕迹。
然而,MapuSoft 现在获得了 AdaMagic 的转售许可。他们将其更名为 "Ada-to-C/C++ changer"。新名字听起来像是假的。几乎没有 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。
在 AppCOE 中,从命令行使用 AdaMagic 的支持很差,但可以实现。设置 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”。
- 针对 OpenVMS Alpha 的 Ada 安装指南 (PDF)
- 针对 OpenVMS VAX 的 Ada 安装指南 (PDF)
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 安装社区版包含的所有工具和库,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 版本
[edit | edit source]使用这些版本的 GNAT,您可以根据自己的选择在二进制形式下分发您的程序;您不受 GPL 的约束。
GNAT 3.15p
[edit | edit source]这是 AdaCore 发布的最后一个使用 GNAT 修改版通用公共许可证 的 GNAT 公开版本。
GNAT 3.15p 已通过 Ada 符合性评估测试套件 (ACATS)。它于 2002 年 10 月发布。
AdaCore 的二进制发行版还包含一个 Ada 感知的 GNU 调试器版本 (GDB),以及一个名为 GNU 可视化调试器 (GVD) 的 GDB 图形前端。
支持的语言 | 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
[edit | edit source]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,以及更多以源代码形式提供,并可根据要求提供二进制形式。 |
GCC
[edit | edit source]自 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 在 第一阶段 期间将他们从 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 项目
[edit | edit source]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++) |
---|---|
运行时库许可证 | 纯 GPL、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 (更多?) |
A#(A-Sharp,也称为 Ada for .NET)
[edit | edit source]此编译器是历史性的,因为它现在已合并到 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) |
包含的附加组件 | 无。 |
用于 AVR 微控制器的 GNAT
[edit | edit source]Rolf Ebert 及其他人员提供了一个配置为交叉编译器到各种 AVR 微控制器 的 GNAT 版本,以及一个适用于微控制器使用的实验性 Ada 运行时库。截至版本 1.1.0(2010-02-25)
支持的语言 | Ada 83, Ada 95, Ada 2005, C |
---|---|
运行时库许可证 | GNAT 修改版 GPL |
主机平台 | i386 上的 GNU/Linux 和 Microsoft Windows |
目标平台 | 各种 AVR 8 位微控制器 |
编译器后端 | GCC 4.7 |
获取来源 | http://avr-ada.sourceforge.net/ |
支持 | 志愿者;公共错误数据库 |
包含的附加组件 | 部分 Ada 运行时系统,AVR 外设支持库 |
用于 LEON 的 GNAT
[edit | edit source]马德里理工大学 (UPM,Universidad Politécnica de Madrid) 的实时研究小组编写了一个适用于 LEON 处理器 的符合 Ravenscar 的实时内核以及修改后的运行时库。他们还提供了一个 GNAT 交叉编译器。截至版本 2.0.1
支持的语言 | Ada 83, Ada 95, Ada 2005, C |
---|---|
运行时库许可证 | 纯 GPL |
原生平台 | 无 |
交叉平台 | i686 上的 GNU/Linux 到 LEON2 裸板 |
编译器后端 | GCC 4.1(GNAT GPL 2007 版) |
获取来源 | http://www.dit.upm.es/ork/ |
支持 | ? |
包含的附加组件 | OpenRavenscar 实时内核;最小的运行时库 |
用于 Macintosh(Mac OS X)的 GNAT
[edit | edit source]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 on 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 修改后的 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 修改后的 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 |
适用于 Eclipse 的 ADT 插件(参见 Aonix 的 ObjectAda 部分)可以与 Debian Etch 中打包的 GNAT 一起使用。指定 "/usr" 作为工具链路径。
DJGPP 是一个将全面的 GNU 实用程序集合移植到带有 32 位扩展的 MS-DOS 的项目,并且得到了积极的支持(截至 2005 年 1 月)。它包含整个 GCC 编译器集合,其中现在包含 Ada。有关安装说明,请参阅 DJGPP 网站。
DJGPP 程序也可以在 Windows 的 DOS 命令框中运行,以及在本地 MS-DOS 系统中运行。
FreeBSD 的 端口集合 有一个 Ada 框架,其中包含一组不断扩大的软件包。该框架目前由 FSF GCC 6.3.1 构建,尽管可以选择使用 FSF GCC 5.4。AdaCore GPL 编译器不存在。这有几个原因,其中最不重要的是维护多个编译器的额外工作量很大。端口中也不包含任何基于非 GCC 的 Ada 编译器。
虽然 FreeBSD 确实有一个与每个版本一起提供的快照,但端口一直在滚动式更新,并且大多数用户更喜欢具有最新软件包的“头”端口。
支持的语言 | 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 |
获取来源 | http://www.freebsd.org、https://github.com/DragonFlyBSD/DPorts |
支持 | 志愿者;公共错误数据库 |
有两种方法可以安装软件。最快捷、最简单的方法是使用命令“pkg install <pkg name>”安装预编译的二进制文件。例如,要安装 GNAT Programming Studio 及其所有依赖项,包括 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 | Ada 绑定到 Lua | 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 | Sphinx 文档生成器用于 Ada | 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(各种二进制软件包) |
获取来源 | http://www.gentoo.org/(查看其他 Gentoo dev-ada 软件包) |
支持 | 志愿者;公共错误数据库 |
包含的附加组件 | AdaBindX、AdaBroker、AdaDoc、AdaOpenGL、AdaSockets、ASIS、AUnit、Booch Components、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(适用于 SPARC 和 x86 上的 Solaris)
[edit | edit source]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 |
原生平台 | SPARC 和 x86 上的 Oracle Solaris 和 OpenSolaris |
交叉平台 | 无 |
编译器后端 | GCC 3.4.6 和 4.6.2(两者都可用) |
支持 | ? |
获取来源 | http://www.opencsw.org/ |
包含的附加组件 | 无(?) |
pkgsrc:NetBSD、DragonFly、FreeBSD 和 Solaris
[edit | edit source]可移植软件包文件系统 pkgsrc 具有一个小的 Ada 框架。它目前基于 FSF GCC 5.4,FSF GCC 6.2 也可用。AdaCore GPL 版本不存在,基于非 GCC 的编译器也不存在。
pkgsrc 系统以季度分支的形式发布,通常推荐使用季度分支。 然而,用户也可以选择 "head",它代表着最新的软件包版本。 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
[edit | edit source]所有版本的 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
[edit | edit source]Ubuntu(以及 Kubuntu、Xubuntu 等衍生版)是基于 Debian 的 Linux 发行版,因此可以采用上面描述的安装过程。 也可以使用 Synaptic 或 Adept 等图形软件包管理器来选择 Ada 软件包。
来自 Irvine Compiler Corporation 的 ICC
[edit | edit source]Irvine Compiler Corporation 为各种平台提供原生和交叉编译器。[1] 编译器和运行时系统支持开发经过认证的安全关键软件。
商业、专有。 可以根据要求申请免费试用。 允许免费重新分发运行时系统。
来自 RR Software 的 Janus/Ada 83 和 95
[edit | edit source]RR Software 为 MS-DOS、Microsoft Windows 和各种 Unix 和类 Unix 系统提供原生编译器,以及一个名为 CLAW 的 Windows GUI 编程库。 提供学术版、个人版和专业版,以及支持选项。
Janus/Ada 95 支持 Ada 2007 和 Ada 2012 特性的子集.
商业,但价格相对便宜;专有。
来自 Concurrent 的 MAXAda
[edit | edit source]Concurrent 提供 MAXAda,这是一个适用于 Linux/Xeon 和 PowerPC 平台的 Ada 95 编译器,以及与 POSIX 和 X/Motif 的 Ada 绑定。[2]
商业,专有。
来自 PTC 的 ObjectAda(以前称为 Aonix/Atego)
[edit | edit source]PTC 提供 ObjectAda 原生(Windows、一些版本的 Unix 和 Linux)和交叉(PPC、Intel、VxWorks 和 ERC32)编译器。
提供 Ada 2012 的有限支持。
商业,专有。
来自 OC Systems 的 PowerAda
[edit | edit source]OC Systems 提供 Ada 编译器以及与 POSIX 和 X-11 的绑定
- PowerAda,这是一个适用于 Linux 和 AIX 的 Ada 95 编译器
- LegacyAda/390,这是一个适用于 IBM System 370 和 390 大型机的 Ada 83 编译器
商业,专有。
来自 PTC 的 ApexAda(以前称为 IBM Rational)
[edit | edit source]PTC ApexAda 用于原生和嵌入式开发。
商业,专有。
来自 DDC-I 的 SCORE
[edit | edit source]DDC-I 提供其 SCORE 用于嵌入式开发的交叉编译器。 SCORE 代表安全关键、面向对象、实时嵌入式。
商业,专有。
来自 Tartan 的 TADS
[edit | edit source]Tartan 提供 Tartan Ada 开发系统 (TADS),其中包含适用于一些数字信号处理器的交叉编译器。
商业,专有。
来自 DXC 的 XD Ada
[edit | edit source]XD Ada 是一款用于嵌入式开发的 Ada 83 交叉编译器。 主机包括运行 OpenVMS 的 VAX、Alpha 和 Integrity 服务器。 目标包括 Motorola 68000 和 MIL-STD-1750A 处理器。
商业,专有。
来自 XGC Software 的 XGC Ada
[edit | edit source]XGC 编译器是 GCC,具有适用于航空电子设备和航天应用的自定义运行时库。 运行时内核非常小,不支持异常传播(即,您只能在引发异常的子程序中处理异常)。
商业,但一些版本也提供免费下载。 自由软件。
支持的语言 | Ada 83, Ada 95, C |
---|---|
运行时库许可证 | GNAT 修改版 GPL |
原生平台 | 无 |
交叉平台 | 主机:sun-sparc-solaris、pc-linux2*;目标是带有 ERC32、MIL-STD-1750A、Motorola 68000 系列或 Intel 32 位 处理器的裸板。 根据要求提供 PowerPC 和 Intel 80186 目标。 |
编译器后端 | GCC 2.8.1 |
获取来源 | http://www.xgc.com/ |
支持 | 商业 |
包含的附加组件 | 符合 Ravenscar 标准的运行时内核,经认证适用于航空电子设备和航天应用;gdb 交叉调试器;目标模拟器。 |
参考资料
[edit | edit source]