跳至內容

鸚鵡虛擬機器/構建鸚鵡

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

獲取鸚鵡

[編輯 | 編輯原始碼]

最新的鸚鵡開發版可以從CPAN下載。

鸚鵡的開發由位於http://svn.parrot.org/parrot/的 SVN 倉庫控制。可以透過svn checkouthttps://svn.parrot.org/parrot/trunk/獲取鸚鵡的最新版本。

從原始碼構建鸚鵡

[編輯 | 編輯原始碼]

鸚鵡目前以原始碼下載的形式提供,儘管有些人試圖維護預編譯版本以供下載。這些版本通常適用於 Windows、Cygwin、Debian 和 Red Hat。將來可能會新增其他二進位制發行版。安裝預編譯的鸚鵡二進位制發行版的說明因特定平臺和打包方法而異。有關您下載的任何發行版的更多詳細資訊,請諮詢隨附的文件。此頁面將不會討論這些特定發行版,只討論從原始原始碼構建鸚鵡的方法。

在 Windows 平臺上,用免費提供的nmake代替make

目前鸚鵡構建過程需要使用make、一個可用的 C 編譯器和一個可用的 Perl 5 安裝。Perl 版本應為 5.8 或更高版本。沒有這些東西,你就無法構建鸚鵡。在各種系統上對這些工具的各種組合執行自動測試,任何特定版本都應該能夠正確編譯。如果您在系統上編譯鸚鵡時遇到問題,請向 Parrot Porters 郵件列表傳送一封包含問題詳情的郵件,鸚鵡開發人員之一會盡力幫助您解決。

Configure.pl

[編輯 | 編輯原始碼]
請注意,Configure.pl 的第一個字母是大寫的。在區分大小寫的 Unix 和 Linux 系統上,這是一個重要的區別。

構建鸚鵡的第一步是執行Configure.pl指令碼,它將在您的系統上執行一些基本測試並生成一個 makefile。要自動使用最常見的選項呼叫Configure.pl,請執行程式Makefile.pl。配置過程會在您的系統上執行許多測試,以確定一些重要的引數。這些測試在某些系統上可能需要幾分鐘,請耐心等待。此外,配置會為您的系統建立一些平臺特定的程式碼檔案。如果沒有這些生成的程式碼檔案,構建過程將無法繼續。

Configure.pl 執行完畢後,您應該會得到一個名為Makefile的檔案(沒有後綴)。從 shell 中進入鸚鵡目錄,輸入命令 "make" 或 "nmake"(Windows 上)。這將啟動構建鸚鵡的過程。鸚鵡構建過程可能需要幾分鐘,因為要執行許多步驟。我們將在後面的章節中討論其中一些步驟。

鸚鵡的根目錄包含一個名為 MANIFEST 的檔案。MANIFEST 包含鸚鵡倉庫中所有必要檔案的列表。如果您向鸚鵡原始碼樹中添加了一個新檔案,請確保將該檔案新增到 MANIFEST 中。Configure.pl 會檢查 MANIFEST 以確保所有檔案都存在,然後再嘗試構建。

Configure.pl 選項

[編輯 | 編輯原始碼]

根據您想要執行的任務或使用鸚鵡的方式,可以為 Configure.pl 指定許多選項。這些選項可能會改變幾個生成檔案的組成,包括 Makefile。這裡,我們將列出其中一些選項。

--help 顯示幫助訊息
--version 列印有關 Configure.pl 的版本資訊
--verbose 向控制檯列印額外資訊
--fatal 如果任何步驟失敗,立即殺死 Configure,不要執行其他測試
--silent 不向控制檯輸出任何資訊
--nomanicheck 不檢查 MANIFEST 檔案以確保所有檔案都存在。
--languages 指定一個用逗號分隔的語言列表,以便在構建鸚鵡後構建這些語言。
--ask 向用戶詢問常見問題答案,而不是執行探測。
--test 首先測試配置工具,然後測試 Configure,最後測試構建工具。使用 --test=configure 測試配置工具,然後執行 Configure.pl。使用 --test=build 執行 Configure.pl,然後也測試構建工具。
--debugging 設定 --debugging=0 關閉除錯。預設情況下啟用除錯。
--inline 指定您的 C 編譯器是否支援使用 C inline 關鍵字的內聯程式碼。
--optimize 使用編譯器最佳化和一些其他加速技巧編譯鸚鵡。可以建立一個速度更快的鸚鵡,但也可能會暴露更多錯誤和故障。使用 --optimize=(flags) 指定要使用的編譯器最佳化標誌。
--parrot_is_shared 將鸚鵡動態連結到 libparrot,而不是靜態連結。
--m=32 在 64 位平臺上,編譯 32 位鸚鵡。
--profile 開啟分析。目前只適用於 GCC 編譯器。
--cage 開啟其他警告,用於 Cage Cleaners。
--cc 指定要使用的編譯器。例如,使用 --cc=gcc 表示 GCC 編譯器,使用 --cc=cl 表示 Microsoft 的 C++ 編譯器。使用 --ccflags 指定任何其他編譯器標誌,使用 --ccwarn 開啟任何其他警告。以下是一些其他選項
  1. 要使用 C++ 編譯器構建鸚鵡,請使用 --cxx 指定要使用的編譯器。
  2. 使用 --libs 指定要與鸚鵡連結的任何其他庫。
  3. 使用 --link 指定連結器
  4. 使用 --linkflags 向連結器傳送選項
  5. 使用 --ld 選擇載入器
  6. 使用 --ldflags 向載入器傳送標誌
  7. 使用 --make 指定要使用的 make 工具
--intval --floatval --opcode 設定要使用的每個值的 C 資料型別。請注意,--intval 和 --opcode 必須相同,否則可能會出現奇怪的錯誤。
--ops 指定要構建的任何可選 OPS 檔案。
--pmc 指定要構建的任何可選 PMC 檔案。
--without-gmp 不要使用
--without gdbm 在沒有 GMP 的情況下構建鸚鵡
--without-opengl 在沒有 OpenGL 支援的情況下構建鸚鵡
--without-crypto 在沒有加密庫的情況下構建鸚鵡
--icu-config 指定系統上 Unicode ICU 庫的位置。
--without-icu 在沒有 ICU 和 Unicode 支援的情況下構建鸚鵡。
--maintainer 使用 Lex 和 Yacc(或等效工具)編譯 IMCC 的詞法分析器和語法分析器。使用 --lex 指定詞法分析器的名稱,使用 --yacc 指定語法分析器的名稱。
--miniparrot 構建 miniparrot
--prefix 指定一個路徑字首
--exec-prefix 指定一個執行路徑字首
--bindir 系統上二進位制可執行檔案所在的目錄
--sbindir 系統管理員可執行檔案資料夾
--libexecdir 程式可執行檔案資料夾
--datadir 用於機器無關資料的只讀資料目錄。
--sysconfdir 用於機器相關的只讀資料
--sharedstatedir 可修改的體系結構無關資料目錄
--localstatedir 可修改的體系結構相關資料目錄
--libdir 目的碼目錄
--includedir 編譯器包含檔案所在的資料夾
--oldincludedir 用於舊版本的 GCC 的 C 標頭檔案目錄
--infodir info 文件目錄
--mandir 手冊頁文件資料夾

鸚鵡可執行檔案

[編輯 | 編輯原始碼]

構建過程完成後,您應該擁有一個 Parrot 可執行檔案(以及其他檔案)。在 Windows 系統上,該檔名為 parrot.exe。在其他系統上,檔名可能略有不同,例如沒有後綴。

還建立了另外兩個有趣的程式,miniparrot.exelibparrot.dll。如果您不在 Windows 系統上,這些檔案將具有不同的名稱。

構建目標

[編輯 | 編輯原始碼]

對於不熟悉 make 程式的讀者來說,它是一個可以用來自動確定如何從原始碼檔案構建軟體專案的程式。在 Makefile 中,您指定依賴項列表以及從其他檔案生成一個檔案的 方法。make 然後確定構建專案的順序和方法。

make 有目標,這意味著一個 Makefile 可以有多個目標。對於 Parrot,已經定義了多個目標,可以幫助構建、除錯和測試。以下是部分構建目標列表:

命令 解釋
make 從原始碼構建 Parrot。僅重新構建上次構建後更改的元件。
make clean 刪除構建過程遺留的所有中間檔案。清理目錄樹,以便可以完全重建 Parrot。
make realclean 完全刪除所有臨時檔案、所有中間檔案和所有 Makefile。在執行 make realclean 命令後,您需要再次執行 Configure.pl
make test 構建 Parrot(如果需要)並在其上執行測試套件。如果測試結果中存在錯誤,您可以嘗試自行修復,或者向 Parrot 開發者提交錯誤報告。這將受到讚賞。
make fulltest 構建 Parrot(如果需要)並在每個執行核心上執行測試套件。這可能是一個非常耗時的操作,通常只在釋出新版本之前執行。
make smoke 執行冒煙測試。這將執行 Parrot 測試套件並嘗試將測試結果直接傳輸到 Parrot 開發伺服器。冒煙測試結果可以幫助開發人員跟蹤 Parrot 在哪些系統上可以正確構建。

提交錯誤和補丁

[編輯 | 編輯原始碼]

如上所述,冒煙測試是向我們提交有關您系統上 Parrot 資訊的簡便方法。由於 Parrot 應該支援許多不同的計算機體系結構和作業系統,因此很難知道 Parrot 在所有系統上的執行情況。

除了冒煙測試,您還可以透過多種方式向 Parrot 提交錯誤報告。如果您是一名熟練的程式設計師,您可能也有興趣嘗試修復錯誤並提交補丁。


上一頁 鸚鵡虛擬機器 下一頁
簡介 執行_Parrot
華夏公益教科書