Boost是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库,在1998年由Beman G.Dawes发起倡议并建立。使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简洁、优雅、灵活和高效。
Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。大部分Boost库功能的使用之需要包括相应的头文件即可,少数需要连接库。
Boost社区根据目标平台的 *** 作提供了Linux和Windows版本,支持预编译版本和源代码版本的安装。
# 官方网站 https://www.boost.org/ # 下载地址 https://www.boost.org/users/download/ # 预编译版本下载地址 https://sourceforge.net/projects/boost/files/boost-binaries/
最上层结构
boost_1_73_0$ tree -L 1 -d ├── boost # 最重要的目录和说明文件 ├── doc # HTML 格式的文档,也可以生成PDF格式文档 ├── libs # 所有组件的示例、测试、编译代码和说明文档 ├── more # 库作者相关的文档 ├── status # 可用于测试Boost库的各个组件 └── tools # b2、quickbook等自带工具
Boost目录结构
boost子目录里面包含了我们可能使用到的所有的库代码,按照类型分别放在不同的目录中,通常我们只要关心这个目录就够了。
/boost_1_73_0/boost$ tree -d -L 1 ├── accumulators # 累加器库 ├── algorithm # 算法库 ├── align # 内存对齐库 ├── archive # 序列化库 ├── asio # 异步并发库 ├── assert # 断言库 ├── assign # 赋值初始化库 ├── atomic # 原子 *** 作库 ├── beast ├── bimap # 双向关联数组 ├── bind # bind表达式 ├── callable_traits ├── chrono # 时间处理库 ... ├── python # python库 ...
在安装环境后,使用大部分的Boost库只需要在自己的源代码里包含对应库的头文件即可。如:
#include#include #include #include
这里介绍在Windows环境下安装预编译版本的boost库,以Boost_1.73.0为例。
预编译版本安装比较简单,只要下载指定版本并安装就可以。
1. 下载boost_1_73_0预编译版本下载地址为:
https://astuteinternet.dl.sourceforge.net/project/boost/boost-binaries/1.73.0/boost_1_73_0-msvc-14.0-64.exe
双击安装在C:boost_1_73_0
3. boost与python版本对照完全安装下会安装Python库,而Python库与当前系统下的python版本存在对应关系,可根据下表查找相应的boost库。
这里介绍使用源代码编译安装的方式,以Boost_1.73.0为例
1. 下载源代码wget https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.bz2 --no-check-certificate2. 编译安装
tar xvf boost_1_73_0.tar.bz2 cd boost_1_73_0 ./boostrap.sh ./b2 --buildtype=complete install
boost有大量的库其实可以选择安装指定的库,这里为了方便我选择完全安装。
安装boost库时我直接按照默认的路径安装,最后会在/usr/local/lib目录下安装所有编译的libboost*库。如果需要指定路径,可以在编译时添加"–prefix=xxx"的路径参数,这样的话在安装后还需要手动将该路径添加到环境变量中。
如果系统中有多个python版本,可以通过"–with-python=python*"来指定python版本,默认情况下使用系统默认的版本。
3. 定制安装完整编译费时费力,而且大部分的库可能在我们的开发过程中根本用不到,所以用户可以自行选择要编译的库。
相关执行命令如下:
查看所有必须编译才能使用的库
./b2 --show-libraries
在完全编译命令的基础上,使用–with或–without选项可以打开或者关闭某个库的编译,如:
./b2 --with-date_time --buildtype=complete install
将仅编译安装data_time库
《Boost程序库完全开发指南》
https://www.boost.org/doc/libs/1_73_0/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)