Boost C++ Libraries

PrevUpHomeNext

僅標頭檔的函式庫(Header-only Libraries)

在現代 C++ 中,函式庫通常只包含標頭檔,沒有任何需要編譯的原始程式檔。要使用這類函式庫,您需要在專案中加入適當的 include 指令和可能的 define。但隨著外部函式庫數量增加,記住哪些函式庫是僅標頭檔的,哪些需要連結,變得相當困難。然而,使用 Boost.Build,僅標頭檔的函式庫可以宣告為 Boost.Build 目標,所有相依的程式碼都可以使用此函式庫,而無需記住它是僅標頭檔還是需要連結。

僅標頭檔的函式庫可以使用 alias 規則宣告,並將其 include 路徑指定為其使用需求的一部分,例如:

alias my-lib
    : # no sources
    : # no build requirements
    : # no default build
    : <include>whatever ;

my-lib 的使用需求中指定的 include 會自動加入到所有相依程式碼的建置屬性中。相依程式碼不需要關心 my-lib 是否僅為標頭檔,並且之後可以將 my-lib 改為一般的編譯函式庫,而無需修改其相依程式碼的宣告。

如果您已經為定義僅標頭檔函式庫的專案宣告了適當的使用需求,則您不需要為 alias 目標重複它們。

project my : usage-requirements <include>whatever ;
alias mylib ;


PrevUpHomeNext