c++ - Boost 学习
简介
- 目录介绍
- 下载
- 编译&安装
- 使用
- 库介绍
一、目录介绍
Boost_1_82_0\ //Boost根目录 index.htm //www.boost.org网站内容的一个副本,从这里开始 boost\ //所有boost的头文件 lib\ //预编译的库二进制文件 libs\ //按库分类的测试文件、c++源文件、文档等 index.htm //库文档,从这里开始 algorithm\ //算法库相关内容目录 any\ //同上 array\ //同上 ... status\ //针对整个boost的测试套件 tools\ //实用工具,如Boost.Build构建工具、quickbook文档工具、bcp工具 more\ //策略文件 doc\ //所有boost库文档的一个子集
二、下载
地址:https://www.boost.org/releases/latest/
- 用Boost Jam进行自动安装,即bjam程序
- 编译bjam程序的脚本为build.bat / build.sh
- build脚本的命令行选项可以选择特定的编译器
- 应用程序bjam必须复制到本地的Boost目录,执行bjam,其可选命令行选项
- 指定安装目录或系统范围内安装
- 指定编译器
- 指定创建何种方式的库
三、编译&安装 boost库
b2
--build-type=complete //1
stage //2
--toolset=msvc-14.2 //3
--stagedir="编译结果" //4
architecture=x86 address-model=32 architecture=x86 address-model=64 //5
link=static,shared //6
runtime-link=shared,static //7
threading=multi //8
debug release //9
上述中
1 表示:完全编译,会生成调试版和发布版
2 表示:表示只生成库文件,不生成包含头文件的include目录。如需要则用install代替,并使用--prefix参数指定目录
3 表示:指定编译器
4 表示:指定编译生成文件的输出路径
5 表示:分别指生成的库的架构和地址模型
6 表示:指定生成静态库和动态库
7 表示:指定动态或静态链库c/c++运行时库
8 表示:指定多线程
9 表示:表示生成调试版和发布版
四、使用
- 头文件目录 项目属性--->c/c++--->附加包含目录
- lib库目录 项目属性--->链接器--->附加库目录
- 库文件名 项目属性--->链接器--->附加依赖项
五、库介绍
- accumulators
- algorithm
- align
- any //可以存放任意的类型
- archive
- array //c++数组也为c++标准容器
- asio //用于异步处理数据的应用
- assert
- assign
- atomic
- beast
- bimap //类似std::map,但其可以从键和值搜索
- bind //可以将函数作为模板
- callable_traits
- charconv
- chrono
- circular_buffer
- cobalt
- compat
- compute
- concept
- concept_check
- config
- conversion //提供三个转型操作,分别为向下转型、交叉转型、以及不同数字类型间值互转
- container
- container_hash
- context
- contract
- convert
- core
- coroutine
- coroutine2
- date_time //灵活的格式处理读写日期和时间
- describe
- detail
- dll
- dynamic_bitset
- endian
- exception //可以在抛出异常中加入额外数据
- fiber
- filesystem //用于处理路径、文件和目录
- flyweight
- format //一个类型安全且可扩展的来替代print
- function //简化了函数指针的定义
- function_types
- functional
- fusion
- geometry
- gil
- graph
- hana
- hash2
- heap
- histogram
- hof
- icl
- interger
- interprocess //允许多个应用通过共享内存进行通信
- intrusive
- io
- iostreams
- iterator
- json
- lambda //定义匿名函数
- lambda2
- leaf
- lexical_cast
- local_function
- locale
- lockfree
- log
- logic
- math
- metaparse
- move
- mpll
- mpi
- mpl
- mqtt5
- msm
- multi_array
- multi_index //新容器,支持多个接口,如vector、map
- multiprecision
- mysql
- nowide
- numeric //提供一个转型操作符安全在不同数字类型间进行值转换
- optional
- outcome
- parameter
- pending
- parser
- pfr
- phoenix
- poly_collection
- polygon
- pool
- predef
- preprocessor
- process
- program_options
- property_map
- property_tree
- proto
- ptr_container //提供了专门为动态分配对象进行优化的容器
- python
- qvm
- random
- range
- ratio
- redis
- ref //适配器可将不可复制的对象的引用传给需要复制的函数
- regex //提供了正则表达式进行文本搜索
- safe_numerics
- scope
- serialization //对象可被序列化,如保存在文件中再重新导入
- signals2 //一个事件处理框架,基于信号槽
- smart_ptr //提供了多个智能指针
- sort
- spirit //可以用类似EBNF(扩展巴科斯范式)的语法生成词法分析器
- stacktrace
- statechart
- stringAlgorithms //提供多个独立函数用于处理字符串
- static_string
- stl_interfaces
- system //提供了一个处理系统相关或应用相关错误代码框架
- test
- thread //用于开发多线程应用
- timer
- tti
- tuple //提供了泛化的std::pair可将任意数量的数据组在一起
- type_erasure
- type_index
- type_traits
- typeof
- tokenizer //可以对一个字符串的各个组件进行迭代
- units
- unordered
- url
- utility
- variant //可以定义多个数据类型
- variant2
- vmd
- wave
- winapi
- xpressive
- yap
end
博客园文作者:Citrusliu
博文地址:https://www.cnblogs.com/citrus
浙公网安备 33010602011771号