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 |
| 支援 | 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 修改後的 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]
