1. 程式人生 > >boost庫編譯

boost庫編譯

01 完全編譯windows版本boost68, vs2015/vs2017

bootstrap.bat
bjam --help
bjam install --toolset=msvc-14.0 --prefix="D:/install/boost/boost_1_68_0/msvc140" --build-type=complete --build-dir="../tmp/boost_1_68_0/complete/msvc140"
bjam install --toolset=msvc-14.1 --prefix="D:/install/boost/boost_1_68_0/msvc141" --build-type=complete --build-dir
="../tmp/boost_1_68_0/complete/msvc141"

02 boost庫生成檔案命名和編譯

生成檔案命名規則:boost中有許多庫,有的庫需要編譯、而有的庫不需要編譯,只需包含標頭檔案就可以使用。編譯生成的檔名字普遍較長,同一個庫根據編譯連結選項不同,又可以生成多個不同名字的檔案。生成的檔名字是很長,可是這樣帶的資訊才多,也就容易識別出用途。其實生成檔案的名字遵循一定的規則,有著固定的格式。識別這種格式,能幫助我們更高效地使用boost庫。生成檔名字格式如:

BOOST_LIB_PREFIX + BOOST_LIB_NAME + “-” + BOOST_LIB_TOOLSET + “-” + BOOST_LIB_THREAD_OPT + “-” + BOOST_LIB_RT_OPT + “-” + BOOST_LIB_VERSION

這些定義為:
BOOST_LIB_PREFIX: 靜態庫為 “lib” (否則無,是用動態連結庫)
BOOST_LIB_NAME: 庫的基本名稱 ( 比方說 boost_regex).
BOOST_LIB_TOOLSET: 編譯工具集名稱 ( 比如:vc6, vc7, bcb5 )
BOOST_LIB_THREAD_OPT: 多執行緒為 “-mt” ,否則為空
BOOST_LIB_RT_OPT: 指示使用的執行庫的字尾,
組合下面的一個或者更多字元:
s 靜態執行庫,指的是靜態連結到執行時庫(不出現表示動態).
g 除錯/診斷 runtime (release if not present).
d 除錯版本 (不出現表示 release 版 ).
p STLPort 版本.
注:對 vc 來說,gd 總是一起出現
BOOST_LIB_VERSION: Boost 版本, Boost 版本 x.y 表示為 x_y形式.