目录
一、boost库简介
二、boost库安装及编译
1.目录结构说明
2.编译静态库
3.构建工具b2
三、boost库的简单使用
一、boost库简介
Boost是一个功能强大 , 构造精良 , 跨越平台 , 代码开源 , 完全免费的 C ++ 程序库。
- 功能强大
共包含 160 余个库 / 组件 , 涵盖字符串与文本处理、容器、迭代器、算法、图像处理、模板元编程、并发编程等多个领域。
- 构造精良
由 c ++ 标准委员会成员发起倡议并建立 boost 社区 , C ++11 标准库中三分之二来自 boost , 并且将来还会有更多的库进入 c ++ 标准库 , 因此 boost 是一个 c ++ " 准 " 标准库。
- 跨越平台
支持现有的所有操作系统。
- 代码开源,完全免费
Boost的发布采用Boost Software License,这是一个不同于GPL和Apache的非常宽松的许可证(许可证相关知识可查看秒懂开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别),该许可证允许库用户将Boost用于任何用途,既鼓励非商业用途,也鼓励商业用途。用户无须支付任何费用,不受任何限制,即可轻松享有Boost的全部功能。
Boost库的大多数组件不需要编译链接,我们在自己的源码里直接包含头文件即可。(注意:包含头文件的时候需要有boost目录,即#include "boost/logic/tribool.hpp",而不能是#include "logic/tribool.hpp")剩下的少量库(如chrono、date_time、program_options、test、thread等)必须编译成静态库或动态库,并在构建时指定链接选项才能使用。
Boost的独特之处:它把C++类的声明和实现放在了一个文件中,而不是分成两个文件,即.h+.cpp,故文件的后缀是.hpp。
二、boost库安装及编译
1.目录结构说明
在boost官网下载boost压缩文件(我用的是boost_1_74_0.zip这个版本),解压后主要目录结构说明如下:
--boost:最重要的目录 , 90 % 以上的 Boost 程序库源码都在这里
--doc:HTMI 格式的文档 , 也可以生成 PDF 格式的文档
--libs:所有组件的示例、测试、编译代码和说明文档
--more:库作者的相关文档
--status:可用于测试 Boost 库的各个组件
--tools:用于编译boost的工具的源代码等
2.编译静态库
运行bootstrap.bat文件,会生成b2.exe及project-config.jam文件。执行b2.exe(我是Windows操作系统),会在boost_1_74_0\stage\lib下生成x64、x86平台的release及debug版本的静态库。(编译动态库需要添加参数:b2.exe link=shared)
3.构建工具b2
b2使用文本格式的构建脚本来管理代码,其名称通常是“jamfile”或“Jamfile”(类似make构建工具的makefile脚本一样)。此外b2还有一个特殊的“jamroot”文件,它需要放在整个项目的根目录下,用于管理项目树,定义整个项目的构建设置。
jamroot文件一般用于定义整个项目里通用的编译参数、包含路径等设置,避免每个子目录里的jamfile重复定义。
b2使用的构建语言称为bjam,它是一种解释型语言,拥有完整的语法定义,包括变量、分支、循环语句、函数,甚至还包括类。bjam是基于token的语言,它使用空格、tab等空白字符来区分语法元素,不仅是单词,即使是“:”“;”这样的标点符号前后也必须要有空格,否则bjam将无法识别标点,导致语法错误。
实际上b2是bjam语言的解释器,它查找当前目录下的jamfile,并向上查找jamroot,解释执行其中的bjam语句,最终完成软件的构建。
(以上四段并不懂)
三、boost库的简单使用
#include <iostream>
#include "boost/version.hpp"
int main()
{
std::cout << BOOST_LIB_VERSION << std::endl;
std::cout << BOOST_VERSION << std::endl;
}
—— 参考自《Boost程序库完全开发指南:深入C++”准”标准库(第5版)》 罗剑锋
更多推荐
C++ | boost库入门
发布评论