Boost C++ Libraries

PrevUpHomeNext

預先建置的目標

要連結到 Jamfile 中未提供建置指示的函式庫,您需要建立 lib 目標,並具有適當的 file 屬性。目標替代值可以用於將多個函式庫檔案與單一概念目標關聯起來。例如

# util/lib2/Jamfile
lib lib2
    :
    : <file>lib2_release.a <variant>release
    ;

lib lib2
    :
    : <file>lib2_debug.a <variant>debug
    ;

此範例針對 lib2 定義兩個替代值,並為每個替代值命名一個預先建置的檔案。原則上,沒有來源。作為替代方案,<file> 功能會用於指定檔案名稱。

在宣告預先建置目標後,它便可像任何其他目標一樣使用

exe app : app.cpp ../util/lib2//lib2 ;

與任何目標一樣,選取的替代值取決於從 lib2 的相依項傳播的屬性。如果我們建置 app 的釋放和偵錯版本,將分別連結至 lib2_release.alib2_debug.a

系統函式庫(透過搜尋一些預先決定的路徑集,由工具組自動找到的函式庫)應近乎像常規函式庫一樣宣告

lib pythonlib : : <name>python22 ;

我們再次不指定任何來源,但提供應傳遞給編譯器的 name。如果 gcc 工具組用於將可執行目標連結至 pythonlib-lpython22 會出現在命令列中(其他編譯器可能會使用不同的選項)。

我們也可以指定工具組應在哪裡尋找函式庫

lib pythonlib : : <name>python22 <search>/opt/lib ;

此外,我們當然可以按一般方式使用目標替代值

lib pythonlib : : <name>python22 <variant>release ;
lib pythonlib : : <name>python22_d <variant>debug ;

已在 名為「site-config.jam 中的目標」的區段 中說明更進階的預先建置目標使用方式。


PrevUpHomeNext