跳轉到內容

Ada 程式設計/安裝

來自 Wikibooks,開放世界中的開放書籍

Ada. Time-tested, safe and secure.
Ada。經時間考驗,安全可靠。

Ada 編譯器 由多個供應商提供,可在各種主機和目標平臺上使用。 Ada 資源協會 維護著一個 可用編譯器列表

以下是按字母順序排列的可用編譯器列表,並附帶其他說明。

SofCheck 的 AdaMagic

[編輯 | 編輯原始碼]

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 的 AdaMULTI

[編輯 | 編輯原始碼]

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 產品。

HP 的 DEC Ada

[編輯 | 編輯原始碼]

DEC Ada 是一個針對 OpenVMS 的 Ada 83 編譯器。雖然“DEC Ada”可能是大多數使用者所知的名字,但該編譯器也被稱為“HP Ada”、“VAX Ada”和“Compaq Ada”。

GNAT,AdaCore 和自由軟體基金會的 GNU Ada 編譯器

[編輯 | 編輯原始碼]

GNAT 是免費的 GNU Ada 編譯器,它是 GNU 編譯器集合 的一部分。它是唯一支援語言標準所有可選附件的 Ada 編譯器。最初的作者成立了 AdaCore 公司,提供專業支援、諮詢、培訓和定製開發服務。因此,可以從許多不同的來源獲得 GNAT,詳見下文。

GNAT 始終根據 GNU 通用公共許可證 的條款授權。

但是,執行時庫使用 GPLGNAT 修改的 GPL,具體取決於獲取它的來源。

可以從多個地方獲得幾個可選的附加元件

  • ASIS,Ada 語義介面規範,是一個允許 Ada 程式檢查和操作其他 Ada 程式的庫。
  • FLORIST 是一個為作業系統提供 POSIX 程式設計介面的庫。
  • GDB,GNU 偵錯程式,帶有 Ada 擴充套件。
  • GLADE 實現附件 E,分散式系統附件。使用它,可以編寫 Ada 分散式程式,其中執行在不同計算機上的程式分割槽透過網路相互通訊以及與共享物件通訊。
  • GPS,GNAT 程式設計工作室,是一個功能齊全的整合開發環境,用 Ada 編寫。它允許您用 Ada、C 和 C++ 程式設計。

還有許多免費軟體庫可用。

GNAT GPL(或社群)版

[編輯 | 編輯原始碼]

截至 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,以及更多以原始碼形式提供,並可根據要求提供二進位制形式。

自 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/LinuxMac OS X 使用者的構建自己的 GNAT 編譯器的說明。

GNAT 的 GPLGMGPLGCC 執行時庫例外 版本均可用。

支援的語言 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,並與 XcodeCarbon 整合和繫結。

請注意,此網站的最新更新時間是 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(適用於 Microsoft Windows)

[編輯 | 編輯原始碼]

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(適用於 Microsoft Windows)

[編輯 | 編輯原始碼]

Cygwin 是一個適用於 Windows 的 Linux 類環境,它也包含 GNAT 編譯器的版本。 Cygwin 版本的 GNATMinGW 版本更舊,並且不支援 DLL 和多執行緒 (截至 2004 年 11 月)

Debian(GNU/Linux 和 GNU/kFreeBSD)

[編輯 | 編輯原始碼]

有一個 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(適用於 MS-DOS)

[編輯 | 編輯原始碼]

DJGPP 在他們的 GCC 發行版中包含 GNAT

DJGPP 是一個將全面的 GNU 實用程式集合移植到帶有 32 位擴充套件的 MS-DOS 的專案,並且得到了積極的支援(截至 2005 年 1 月)。它包含整個 GCC 編譯器集合,其中現在包含 Ada。有關安裝說明,請參閱 DJGPP 網站。

DJGPP 程式也可以在 Windows 的 DOS 命令框中執行,以及在本地 MS-DOS 系統中執行。

FreeBSD 和 DragonFly

[編輯 | 編輯原始碼]

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.orghttps://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]

以下列表可以幫助您進行安裝。(我可能遺漏了一些內容 - 但這是維基,只需新增到列表中)

  1. 安裝 MinGW-3.1.0-1.exe
    1. 解壓 binutils-2.15.91-20040904-1.tar.gz
    2. 解壓 mingw-runtime-3.5.tar.gz
    3. 解壓 gcc-core-3.4.2-20040916-1.tar.gz
    4. 解壓 gcc-ada-3.4.2-20040916-1.tar.gz
    5. 解壓 gcc-g++-3.4.2-20040916-1.tar.gz(可選)
    6. 解壓 gcc-g77-3.4.2-20040916-1.tar.gz(可選)
    7. 解壓 gcc-java-3.4.2-20040916-1.tar.gz(可選)
    8. 解壓 gcc-objc-3.4.2-20040916-1.tar.gz(可選)
    9. 解壓 w32api-3.1.tar.gz
  2. 安裝 mingw32-make-3.80.0-3.exe(可選)
  3. 安裝 gdb-5.2.1-1.exe(可選)
  4. 安裝 MSYS-1.0.10.exe(可選)
  5. 安裝 msysDTK-1.0.1.exe(可選)
    1. 解壓 msys-automake-1.8.2.tar.bz2(可選)
    2. 解壓 msys-autoconf-2.59.tar.bz2(可選)
    3. 解壓 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(適用於 SPARCx86 上的 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*;目標是帶有 ERC32MIL-STD-1750AMotorola 68000 系列或 Intel 32 位 處理器的裸板。 根據要求提供 PowerPCIntel 80186 目標。
編譯器後端 GCC 2.8.1
獲取來源 http://www.xgc.com/
支援 商業
包含的附加元件 符合 Ravenscar 標準的執行時核心,經認證適用於航空電子裝置和航天應用;gdb 交叉偵錯程式;目標模擬器。

參考資料

[edit | edit source]


華夏公益教科書