![]() |
要連結到 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.a
與 lib2_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 中的目標」的區段 中說明更進階的預先建置目標使用方式。