Boost
库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。
在VS下,boost的头文件中会包含#pragma comment(lib,xxx)
的语句,所以可以不用在项目中添加相关的库指定。
boost中大部分库是仅有头文件,不用编译成库的。
编译好的库可以到这里下载
1、源码
2、生成编译工具
boost库自带了bootstrap
脚本来生成一个构建工具b2
。打开命令行直接执行即可。
D:\development_library\boost\boost_1_62_0>bootstrap.bat --help
Building Boost.Build engine
Failed to build Boost.Build engine.
Please consult bootstrap.log for further diagnostics.
You can try to obtain a prebuilt binary from
http://sf.net/project/showfiles.php?group_id=7586&package_id=72941
Also, you can file an issue at http://svn.boost.org
Please attach bootstrap.log in that case.
这里出现了Failed to build Boost.Build engine.
错误,解决办法很简单,使用VS 2015 命令行提示符
来执行即可。
3、进行编译
b2
工具的使用如下
b2 [options] [properties] [install|stage]
#options 选项
#properties 特性
#install|stage 安装还是编译到指定位置
编译命令如下
#编译
b2.exe --prefix=C:\Boost --build-type=complete --build-dir=build_tmp toolset=msvc-14.0 address-model=64 stage
#安装
b2.exe --prefix=C:\Boost --build-type=complete --build-dir=build_tmp toolset=msvc-14.0 address-model=64 install
目标和相关选项:
选项 | 含义 |
install | 安装头文件和编译后的库文件到配置的位置(如下)。 |
--prefix= | 平台架构无关的文件(include/doc等)的安装位置 win32默认在 |
--exec-prefix= | 安装平台架构相关的文件在这里 默认与 |
--libdir= | 库文件安装目录 默认 |
--includedir= | 头文件安装目录 默认 |
stage | 仅构建和安装编译的库文件到stage目录 |
--stagedir=< | 安装编译的库文件目录 默认 |
其他选项:
选项 | 含义 |
--build-type= | 构建预定义的配置。 注意:构建哪些variants取决于各个库的支持。 |
--build-dir=DIR | 构建指定目录(默认中间文件会在源码目录下) 推荐!# |
--show-libraries | 显示构建的Boost库列表在安装步骤,然后退出 |
--layout= | 确定是否选择库名和头文件位置,一边可以在同一系统上使用多个版本的Boost库或多个编译器编译的。
|
--buildid=ID | 将指定的ID添加到构建的库的名称。 默认是不添加任何东西。 |
--python-buildid=ID | 将指定的ID添加到依赖于Python的构建库的名称。 默认是不添加任何东西。 但指定了--buildid,还会添加此ID。 |
--help | 显示相关选项说明信息 |
| 构建并安装指定的 |
| 不要构建和安装指定的 |
特性:
选项 | 含义 |
toolset=toolset | 指示要构建的平台工具集。(VS2015就是msvc-14.0) |
variant= | 选择构建variant |
link= | 构建静态或共享库 |
threading= | 构建单线程或多线程二进制程序库 |
runtime-link= | 静态还是动态链接到C和C ++运行时库 |
address-model= | 寻址模式(生成32位还是64位库) |
注意:表格中的/
原本是|
。