CPlusPlus之Boost入门

Boost C++ 库(Libraries)是一组扩展C++功能的经过同行评审(Peer-reviewed)且开放源码程序库。大多数的函数为了能够以开放源码或者封闭项目的方式运作,而许可于Boost软件许可协议(Boost Software License)之下。许多Boost的开发人员是来自C++标准委员会,而部分的Boost库成为C++的TR1标准之一。

为了要确保库的效率与弹性,Boost广泛的使用模板(template)功能。而它是针对各式领域的C++用户与应用领域(Application Domain)上,包含的库类别从像smart_ptr 库(页面存档备份,存于互联网档案馆)这种类通用库,到像是文件系统的操作系统抽象层,甚至能够利用Boost来开发额外的库或是给高级的C++用户利用,像是MPL。

源代码下载

1
2
git clone https://github.com/boostorg/boost.git
git submodule --update

编译过程

生成编译工具b2.exe:

1
2
cd %BOOST_ROOT%
bootstrap.bat
  • 完整安装boost
1
b2 --buildtype=complete
  • 定制安装boost
1
2
3
4
5
6
# 可查看所有必须编译才能使用的库
b2 --show-libraries
# 单独编译安装regex库:
b2 --with-regex link=static runtime-link=shared threading=multi –-stagedir=build stage
# 生成include文件夹
b2 --with-regex link=static runtime-link=shared threading=multi --prefix=build install

编译结果在stage\lib目录下生成regex库(Debug/Release):

1
2
libboost_regex-vc100-mt-1_77.lib
libboost_regex-vc100-mt-gd-1_77.lib

相关参数的含义:
stage 仅创建和安装库文件(不创建头文件),可以用 –stagedir= 选项指定库的安装位置,默认安装在当前目录下的stage文件夹内。
–with- 创建和安装指定的库,如果使用了这个选项,则仅仅指定的库被创建,其它库不被创建。如果不指定这个选项,默认创建所有需要编译安装的库。
link=static指定生成静态regex库
threading=multi指定生成多线程库
runtime-link=shared指定动态链接C和C++ 运行库

参考链接

  1. Boost编译与使用,by luckyum.
  2. Parsing Command Line Arguments in C++?,by stackoverflow.
  3. Boost.Program_options,by Boost.
  4. Boost.JSON,by Boost.
  5. Boost C++ Libraries,by wikipedia.
  6. Boost Getting Started on Windows,by Boost.
  7. Windows平台下boost库的编译和调用,by JasonLiThirty.
  8. windows下编译和安装boost库,by rangers.
  9. C++静态库与动态库,by rangers.
  10. boost::program_options 用法详解,by morning_color.
  11. C++ Boost JSON解析库的使用,by miaoerduo.
  12. boost.xml_parser中文字符问题,by mob604756f44f2a .
  13. Creating JSON arrays in Boost using Property Trees,by stackoverflow.
  14. Boost.JSON Boost的JSON解析库(1.75首发),by ink19.
  15. c++ - 如何使用 json 解析器的 boost property_tree 创建空数组节点,by coder.