显示所有的需要编译才能使用的库
b2 --show-libraries
命令:
b2 stage --toolset=msvc-14.3 --with-log --stagedir="d:\Program\boost_Lib" link=shared runtime-link=shared threading=multi variant=debug address-model=64 define=_WIN32_WINNT=0x0602 -a
define=BOOST_USE_WINAPI_VERSION=BOOST_WINAPI_VERSION_WINXP
define=_WIN32_WINNT=0x0501
define=BOOST_USE_WINDOWS_H
define=_WIN32_WINNT=0x0601 define=BOOST_USE_WINAPI_VERSION=0x0601 define=BOOST_USE_WINDOWS_H
解释:
参数: --toolset=msvc-11.0
msvc版本是14.3即VS2022. 库的名称中包含此版本143, 例如: libboost_log-vc143-mt-1_79.lib
参数: link=static
boost静态库,库的名称以libboost开头; 例如: libboost_log-vc143-mt-1_79.lib
该参数可选的取值为: "shared" "static"
参数: runtime-link=static
系统运行库以静态方式加载. 生成的库命名中有"s"; 例如: libboost_log-vc143-mt-sgd-1_79.lib
若参数改为 runtime-link=shared , 则 msvc的运行库,以共享的方式加载. 生成的boost库名称中没有"s"
该参数可选的取值为: "shared" "static"
参数: threading=multi
生成的库是多线程. 现在的应用程序大部分是多线程的.
该参数的可选的取值为: "single" "multi"
参数: variant=debug
生成debug版本的库, 库的命名中有"gd"; 例如: libboost_date_time-vc110-mt-sgd-1_60.lib
该参数取值范围: "debug" "release" "profile" "debug-python"
参数: address-model=64
生成64位的库. 不写该参数, 则默认为生成32位的链接库.
该参数可选的参数取值为: "16" "32" "64" "32_64"
--clean
Remove targets instead of building
-a
Rebuild everything
boost 库的命名特点:
(1)以“lib”开头的是“link=static”版本(静态链接库版本,没有dll),而直接以“boost”开头的是“link=shared”版本(动态链接库版本,包含lib和dll)。
(2)所有的库都含有"boost"前缀。
(3)紧随其后的是boost库名称(比如date_time库)。
(4)然后是编译器的版本,与库名称之间以"-"而不是下划线"_"分隔(比如 -vc120)。
(5)有“mt”的为“threading=multi”版本,没有的则是“threading=single”版本。
(6)有“s”的为“runtime-link=static”版本,没有的则是“runtime-link=shared”版本。
(7)有“gd”的为debug版本,没有的则是release版本。
(8)所有的库都含有boost库的版本号结尾(比如1_56,其中的"."以下划线"_"代替)
在VS中使用:
1. 配置Include引用路径.
项目->属性->配置属性->C/C++->常规->附加包含目录
例如我的配置为: d:\Program\boost_Include_and_Lib\Include\
2. 配置Lib库的引用路径
项目->属性->配置属性->连接器->常规->附加库目录
例如我的配置为: d:\Program\boost_Include_and_Lib\Lib\VS2012\$(PlatformTarget)\lib\