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 |
| 支援 | stef@genesix.org |
| 包含的附加元件 | 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 |
| 可從以下網址獲取: | http://www.freebsd.org, 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(各種二進位制軟體包) |
| 可從以下網址獲取: | http://www.gentoo.org/(檢視其他 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 交叉偵錯程式;目標模擬器。 |
