![]() |
要呼叫 Boost.Build,請在命令列中輸入 b2。Boost.Build 接受三種類型的命令列標記,可以任意順序輸入:
選項以一個或兩個破折號開頭。標準選項列在下方,每個專案都可以新增額外的選項。
屬性指定您要建置內容的詳細資訊(例如偵錯或發行版本)。語法上,所有包含等號的命令列標記都被視為指定屬性。最簡單的形式,屬性看起來像 功能
=值
所有既不是選項也不是屬性的標記都指定要建置的目標。可用的目標完全取決於您正在建置的專案。
要使用預設屬性建置目前目錄中 Jamfile 定義的所有目標,請執行:
b2
要建置特定目標,請在命令列中指定它們:
b2 lib1 subproject//lib2
要為某些屬性請求特定值,請將
新增到命令列:屬性
=值
b2 toolset=gcc variant=debug optimization=space
Boost.Build 辨識以下命令列選項。
--help
呼叫線上說明系統。這會印出有關如何使用其他 --help* 選項的說明系統的一般資訊。
--clean
清除目前目錄和任何子專案中的所有目標。請注意,與 make 中的 clean
目標不同,您可以將 --clean
與目標名稱一起使用來清除特定目標。
--clean-all
清除所有目標,無論它們在哪裡定義。特別是,它會清除父 Jamfile 中的目標,以及在其他專案根目錄下定義的目標。
--build-dir
更改正在建置的所有專案根目錄的建置目錄。指定此選項時,所有 Jamroot 檔案都必須宣告專案名稱。專案根目錄的建置目錄將透過串連 --build-dir
選項的值、Jamroot 中指定的專案名稱以及 Jamroot 中指定的建置目錄(如果未指定,則為 bin
)來計算。
當您無法修改 Jamroot 時,此選項在從唯讀媒體建置時特別有用。
--abbreviate-paths
透過縮寫每個組成部分來壓縮目標路徑。當路徑長度超過檔案系統支援的長度時,此選項很有用。另請參閱目標路徑一節。
--hash
使用 MD5 雜湊壓縮目標路徑。當路徑長度超過檔案系統支援的長度時,此選項很有用。此選項比 --abbreviate-paths 產生更短的路徑,但會降低路徑的可讀性。另請參閱目標路徑一節。
--version
印出 Boost.Build 和 Boost.Jam 版本的相關資訊。
-a
導致所有檔案都被重建。
-n
不執行命令,只印出它們。
-q
在第一個錯誤發生時停止,而不是繼續建置不依賴於失敗目標的目標。
-j N
最多平行執行 N
個命令。
--debug-configuration
產生關於載入 Boost.Build 和工具集檔案的偵錯資訊。
--debug-building
印出正在建置的目標及其屬性。
--debug-generators
產生來自產生器搜尋程序的偵錯輸出。適用於偵錯自訂產生器。
-d0
隱藏所有資訊訊息。
-d N
啟用從 1 到 n 的累積偵錯級別。值為
-d +N
啟用除錯級別 N
。
-o file
將更新動作寫入指定的檔案,而不是執行它們。
-s var
=value
在 Jam 語言直譯器的全域範圍中,將變數 var
設定為 value
,覆蓋從環境匯入的變數。
在最簡單的情況下,建置是使用單一組屬性執行的,您可以使用 feature
=value
形式的元素在命令列上指定這些屬性。完整的特性列表可以在「內建特性」一節中找到。最常見的特性總結如下。
表格 3.2.
特性 | 允許的值 | 備註 |
---|---|---|
variant(變體) | debug(除錯), release(發佈) | |
link(連結) | shared(共享), static(靜態) | 決定 Boost.Build 建立共享程式庫還是靜態程式庫 |
threading(執行緒) | single(單執行緒), multi(多執行緒) | 使產生的二進位檔案具有執行緒安全性。這需要原始碼本身的適當支援。 |
address-model(位址模型) | 32,64 | 32, 64 |
明確要求 32 位元或 64 位元程式碼生成。這通常需要您的編譯器已正確設定。如果出現問題,請參閱 「C++ 編譯器」一節 和您的編譯器文件。 | toolset(工具集) | (取決於設定) |
要使用的 C++ 編譯器。有關詳細列表,請參閱 「C++ 編譯器」一節。 | include(包含) | (任意字串) |
C 和 C++ 編譯器的額外 include 路徑。 | include(包含) | define(定義) |
C 和 C++ 編譯器的額外巨集定義。字串應為 SYMBOL 或 SYMBOL=VALUE |
include(包含) | cxxflags |
傳遞給 C++ 編譯器的自訂選項。 | include(包含) | cflags |
傳遞給 C 編譯器的自訂選項。 | include(包含) | linkflags |
傳遞給 C++ 連結器的自訂選項。 | shared(共享), static(靜態) | runtime-link(執行階段連結) |
決定是否應使用 C 和 C++ 執行階段的共享或靜態版本。
如果您擁有多個版本的特定 C++ 工具集(例如,在 user-config.jam
中設定,或自動偵測,就像 msvc 那樣),您可以透過將
作為 toolset
-version
toolset
特性的值來請求特定版本,例如 toolset=msvc-8.0
。
b2 link=static link=shared threading=single threading=multi
如果某個特性有一組固定的值,則可以在命令列上多次指定它。在這種情況下,所有內容都會被建置多次——每個指定的特性值建置一次。例如,如果您使用
b2 link=static,shared threading=single,multi
則將執行總共 4 次建置。為了方便起見,您可以用逗號分隔值,而不是在單獨的命令列元素中指定所有請求的特性值,例如
b2 include=static,shared
不會被特殊處理。
所有命令列元素中,非選項也非屬性的部分,都是要建置的目標名稱。詳見「目標識別碼和參考」一節。如果沒有指定目標,則會建置目前目錄中的專案。