跳轉到內容

Ada 程式設計/安裝

來自華夏公益教科書,開放的書籍,開放的世界

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 到 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 的 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,一個用於 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 版本

[編輯 | 編輯原始碼]

透過這些版本的 GNAT,您可以根據您選擇的許可條款以二進位制形式分發您的程式;您不受 GPL 約束。

GNAT 3.15p

[編輯 | 編輯原始碼]

這是 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 專案

[編輯 | 編輯原始碼]

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++)
執行時庫許可證 純、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)

[編輯 | 編輯原始碼]

此編譯器具有歷史意義,因為它現在已合併到 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

[編輯 | 編輯原始碼]

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 外設支援庫

GNAT for LEON

[編輯 | 編輯原始碼]

馬德里理工大學 (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 (Mac OS X)

[編輯 | 編輯原始碼]

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 在 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-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(適用於 MS-DOS)

[編輯 | 編輯原始碼]

DJGPP 的 GCC 發行版中包含 GNAT

DJGPP 是將包含 GNU 實用程式在內的綜合集合移植到具有 32 位擴充套件的 MS-DOS,並積極支援(截至 2005 年 1 月)。它包含整個 GCC 編譯器集合,現在也包含 Ada。請參閱 DJGPP 網站以獲取安裝說明。

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

FreeBSD 和 DragonFly

[編輯 | 編輯原始碼]

FreeBSDports 倉庫 包含一個 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]

以下列表將幫助您進行安裝。(我可能遺漏了一些內容 - 但這是維基百科,請隨時新增內容)

  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)

[編輯 | 編輯原始碼]

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:NetBSD、DragonFly、FreeBSD 和 Solaris

[編輯 | 編輯原始碼]

可移植軟體包檔案系統 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

[編輯 | 編輯原始碼]

所有版本的 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 的 ICC

[編輯 | 編輯原始碼]

Irvine Compiler Corporation 為各種平臺提供原生和交叉編譯器。[1] 編譯器和執行時系統支援開發經過認證的安全關鍵型軟體。

商業、專有。可以按要求進行免費評估。允許免費重新分發執行時系統。

來自 RR Software 的 Janus/Ada 83 和 95

[編輯 | 編輯原始碼]

RR Software 提供了針對 MS-DOS、Microsoft Windows 以及各種 Unix 和類 Unix 系統的原生編譯器,以及用於 Windows GUI 程式設計的庫 CLAW。提供學術版、個人版和專業版,以及支援選項。

Janus/Ada 95 支援 Ada 2007 和 Ada 2012 特性的子集。.

商業軟體,但價格相對便宜;專有。

來自 Concurrent 的 MAXAda

[編輯 | 編輯原始碼]

Concurrent 提供了 MAXAda,這是一種針對 Linux/Xeon 和 PowerPC 平臺的 Ada 95 編譯器,以及 Ada 與 POSIX 和 X/Motif 的繫結。[2]

商業、專有。

來自 PTC 的 ObjectAda(以前稱為 Aonix/Atego)

[編輯 | 編輯原始碼]

PTC 提供了 ObjectAda 原生(Windows、某些版本的 Unix 和 Linux)和交叉(PPC、Intel、VxWorks 和 ERC32)編譯器。

提供對 Ada 2012 的有限支援。

商業、專有。

來自 OC Systems 的 PowerAda

[編輯 | 編輯原始碼]

OC Systems 提供 Ada 編譯器以及與 POSIX 和 X-11 的繫結。

  • PowerAda,一種針對 Linux 和 AIX 的 Ada 95 編譯器。
  • LegacyAda/390,一種針對 IBM System 370 和 390 大型機的 Ada 83 編譯器。

商業、專有。

來自 PTC 的 ApexAda(以前稱為 IBM Rational)

[編輯 | 編輯原始碼]

PTC ApexAda,適用於原生和嵌入式開發。

商業、專有。

來自 DDC-I 的 SCORE

[編輯 | 編輯原始碼]

DDC-I 提供了其用於嵌入式開發的交叉編譯器 SCORE。SCORE 代表安全關鍵、面向物件、即時嵌入式。

商業、專有。

來自 Tartan 的 TADS

[編輯 | 編輯原始碼]

Tartan 提供 Tartan Ada Development System (TADS),包含針對某些數字訊號處理器的交叉編譯器。

商業、專有。

來自 DXC 的 XD Ada

[編輯 | 編輯原始碼]

XD Ada 是一種用於嵌入式開發的 Ada 83 交叉編譯器。主機包括執行 OpenVMS 的 VAX、Alpha 和 Integrity 伺服器。目標包括 Motorola 68000 和 MIL-STD-1750A 處理器。

商業、專有。

來自 XGC Software 的 XGC Ada

[編輯 | 編輯原始碼]

XGC 編譯器是帶有自定義執行時庫的 GCC,適合航空電子和空間應用。執行時核心非常小,不支援異常傳播(即,您只能在引發異常的子程式中處理異常)。

商業軟體,但某些版本也提供免費下載。免費軟體。

支援的語言 Ada 83、Ada 95、C
執行時庫許可證 GNAT 修改的 GPL
本地平臺
交叉平臺 主機:sun-sparc-solaris、pc-linux2*;目標是帶有 ERC32MIL-STD-1750A摩托羅拉 68000 系列或 英特爾 32 位 處理器的裸板。 PowerPC英特爾 80186 目標可應要求提供。
編譯器後端 GCC 2.8.1
可從以下網址獲取: http://www.xgc.com/
支援 商業
包含的附加元件 符合 Ravenscar 標準的執行時核心,已透過航空航天應用認證;gdb 交叉偵錯程式;目標模擬器。

參考文獻

[編輯 | 編輯原始碼]


華夏公益教科書