boost介绍
Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。
boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。 STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。
Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许并鼓励的。
Boost社区建立的初衷之一就是为C++的标准化工作提供可供参考的实现,Boost社区的发起人Dawes本人就是C++标准委员会的成员之一。在Boost库的开发中,Boost社区也在这个方向上取得了丰硕的成果。在送审的C++标准库TR1中,有十个Boost库成为标准库的候选方案。在更新的TR2中,有更多的Boost库被加入到其中。从某种意义上来讲,Boost库成为具有实践意义的准标准库。
大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。
很多Boost中的库功能堪称对语言功能的扩展,其构造用尽精巧的手法,不要贸然的花费时间研读。Boost另外一面,比如Graph这样的库则是具有工业强度,结构良好,非常值得研读的精品代码,并且也可以放心的在产品代码中多多利用。
boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项。 有一些库是跨类别包含的,就是既属于这个类别又属于那个类别。
下载boost
直接在boost官网下载
选择最新的版本1_75_0版本(低于1.7.0的版本可能在vs2019中支持不完善,编译或运行时发生不可预料的bug)
根据自己的需要选择下载,这里因为我使用的是win10,所以选择的是windows版本。
编译安装boost
下载后,压缩包后直接解压缩就行了,解压缩后的目录如下,找到其中的bootstrap.bat文件:
使用vs2019的tools工具,具体操作:vs2019 —> visual studio tools —> vc —> x86_x64 Cross Tools Command Prompt for VS 2,打开命令行:
切换到刚才boost的解压缩安装目录下(本人安装目录:F:\boost\boost_1_75_0\boost_1_75_0)
执行bootstrap.bat
执行完会发现安装目录下多了些文件,找到其中的b2.exe
在命令框继续输入以下内容,开始编译:b2 install --toolset=msvc-14.2 --build-type=complete --prefix=“F:\boost\boost_1_75_0\boost_1_75_0” link=shared runtime-link=shared runtime-link=static threading=multi debug release
备注:本人上述编译是编译整个boost库,如果只需要编译某个库或者不需要某个库可通过参数with/without 库名称去实现。
大概介绍下上述编译条件:
install 是安装头文件和库文件,后面的prefix=“F:\boost\boost_1_75_0\boost_1_75_0” 也是配合install参数使用,设定生成的include和lib路径;include也可以换stage,那么只生成lib文件。
toolset=msvc-14.2 vs2019对应msvc版本为14.2,不是16开头;
上述参数可选也可不设,直接运行b2.exe;
这个过程可能