boost库编译

01 完全编译windows版本boost68, vs2015/vs2017

https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.7z
–build-type=complete 完全编译,会同时编译出32位/64位/动态/静态库。

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形式.

你可能感兴趣的:(c++)