c++ - Boost 学习

简介

  1. 目录介绍
  2. 下载
  3. 编译&安装
  4. 使用
  5. 库介绍

一、目录介绍

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/

  1. 用Boost Jam进行自动安装,即bjam程序
  2. 编译bjam程序的脚本为build.bat / build.sh
  3. build脚本的命令行选项可以选择特定的编译器
  4. 应用程序bjam必须复制到本地的Boost目录,执行bjam,其可选命令行选项
    1. 指定安装目录或系统范围内安装
    2. 指定编译器
    3. 指定创建何种方式的库

 

三、编译&安装 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 表示:表示生成调试版和发布版

四、使用

  1. 头文件目录   项目属性--->c/c++--->附加包含目录
  2. lib库目录       项目属性--->链接器--->附加库目录
  3. 库文件名       项目属性--->链接器--->附加依赖项

 

五、库介绍

  1. accumulators
  2. algorithm
  3. align
  4. any            //可以存放任意的类型
  5. archive
  6. array         //c++数组也为c++标准容器
  7. asio       //用于异步处理数据的应用
  8. assert
  9. assign
  10. atomic
  11. beast
  12. bimap           //类似std::map,但其可以从键和值搜索
  13. bind          //可以将函数作为模板
  14. callable_traits
  15. charconv
  16. chrono
  17. circular_buffer
  18. cobalt
  19. compat
  20. compute
  21. concept
  22. concept_check
  23. config
  24. conversion       //提供三个转型操作,分别为向下转型、交叉转型、以及不同数字类型间值互转
  25. container
  26. container_hash
  27. context
  28. contract
  29. convert
  30. core
  31. coroutine
  32. coroutine2
  33. date_time       //灵活的格式处理读写日期和时间
  34. describe
  35. detail
  36. dll
  37. dynamic_bitset
  38. endian
  39. exception     //可以在抛出异常中加入额外数据
  40. fiber
  41. filesystem      //用于处理路径、文件和目录
  42. flyweight
  43. format       //一个类型安全且可扩展的来替代print
  44. function         //简化了函数指针的定义
  45. function_types
  46. functional
  47. fusion
  48. geometry
  49. gil
  50. graph
  51. hana
  52. hash2
  53. heap
  54. histogram
  55. hof
  56. icl
  57. interger
  58. interprocess           //允许多个应用通过共享内存进行通信
  59. intrusive
  60. io
  61. iostreams
  62. iterator
  63. json
  64. lambda         //定义匿名函数
  65. lambda2
  66. leaf
  67. lexical_cast
  68. local_function
  69. locale
  70. lockfree
  71. log
  72. logic
  73. math
  74. metaparse
  75. move
  76. mpll
  77. mpi
  78. mpl
  79. mqtt5
  80. msm
  81. multi_array
  82. multi_index     //新容器,支持多个接口,如vector、map
  83. multiprecision
  84. mysql
  85. nowide
  86. numeric      //提供一个转型操作符安全在不同数字类型间进行值转换
  87. optional
  88. outcome
  89. parameter
  90. pending
  91. parser
  92. pfr
  93. phoenix
  94. poly_collection
  95. polygon
  96. pool
  97. predef
  98. preprocessor
  99. process
  100. program_options
  101. property_map
  102. property_tree
  103. proto
  104. ptr_container           //提供了专门为动态分配对象进行优化的容器
  105. python
  106. qvm
  107. random
  108. range
  109. ratio
  110. redis
  111. ref             //适配器可将不可复制的对象的引用传给需要复制的函数
  112. regex         //提供了正则表达式进行文本搜索
  113. safe_numerics
  114. scope
  115. serialization       //对象可被序列化,如保存在文件中再重新导入
  116. signals2          //一个事件处理框架,基于信号槽
  117. smart_ptr      //提供了多个智能指针
  118. sort
  119. spirit           //可以用类似EBNF(扩展巴科斯范式)的语法生成词法分析器
  120. stacktrace
  121. statechart
  122. stringAlgorithms    //提供多个独立函数用于处理字符串
  123. static_string
  124. stl_interfaces 
  125. system        //提供了一个处理系统相关或应用相关错误代码框架
  126. test
  127. thread          //用于开发多线程应用
  128. timer
  129. tti
  130. tuple       //提供了泛化的std::pair可将任意数量的数据组在一起
  131. type_erasure
  132. type_index
  133. type_traits
  134. typeof
  135. tokenizer      //可以对一个字符串的各个组件进行迭代
  136. units
  137. unordered
  138. url
  139. utility
  140. variant      //可以定义多个数据类型
  141. variant2
  142. vmd
  143. wave
  144. winapi
  145. xpressive
  146. yap

end 

posted @ 2025-06-24 17:45  Citrusliu  阅读(90)  评论(0)    收藏  举报