哪些 Boost 库是仅标头的

Which Boost libraries are header-only?

本文关键字:Boost 哪些      更新时间:2023-10-16

哪些 Boost 库是仅标头的?哪些需要建立图书馆?

有这样的清单吗?

需要构建的库列表在这里用于类Unix系统,这里用于Windows。

对于当前版本 1.58,两者是相同的:

  • Boost.Chrono
  • Boost.Context
  • Boost.Filesystem
  • Boost.GraphParallel
  • Boost.IOStreams
  • Boost.Locale
  • Boost.MPI
  • 提升程序选项
  • Boost.Python
  • Boost.Regex
  • Boost.Serialization
  • 增强信号
  • 升压系统
  • Boost.Thread
  • Boost.Timer
  • 助推波

一些库具有可选的单独编译的二进制文件:

  • Boost.DateTime
  • Boost.Graph
  • Boost.Math
  • 提升.随机
  • 提升.测试
  • Boost.Exception

请注意,某些库可能依赖于这些(例如,Asio 依赖于 System,如注释中指出的那样),因此即使您想要的库不在列表中,您可能仍然需要构建一些东西。

实际上

,即使./bootstrap.sh --show-libraries也有些不正确,因为某些库依赖于列出的库。

可以使用 Boost BCP 工具获取仅标头库的列表,在每个库上启动该工具并删除链接任何二进制文件的库。这就是如何在如何构建仅标题提升中所做的。

对于 Boost 1.67.0,结果列表为:

accumulators
align
any
array
assert
assign
bind
callable_traits
circular_buffer
compatibility
concept_check
config
container_hash
conversion
convert
core
crc
detail
disjoint_sets
dynamic_bitset
endian
foreach
format
function
functional
function_types
fusion
geometry
gil
hana
heap
hof
icl
integer
interprocess
intrusive
io
iterator
lambda
lexical_cast
locale
local_function
logic
metaparse
move
mp11
mpl
msm
multi_array
multi_index
optional
phoenix
poly_collection
polygon
predef
preprocessor
property_tree
proto
ptr_container
qvm
ratio
rational
scope_exit
signals2
smart_ptr
sort
static_assert
throw_exception
tokenizer
tti
tuple
type_index
typeof
type_traits
units
unordered
utility
uuid
variant
vmd
winapi
xpressive

我认为上面的列表并不准确,即使它来自官方文档。请参阅 https://svn.boost.org/trac10/ticket/13222

相反,您可以查询需要构建的库列表:

>    ./bootstrap.sh --show-libraries
   The Boost libraries requiring separate building and installation are:
    atomic
    chrono
    container
    context
    coroutine
    date_time
    exception
    fiber
    filesystem
    graph
    graph_parallel
    iostreams
    locale
    log
    math
    metaparse
    mpi
    program_options
    python
    random
    regex
    serialization
    signals
    stacktrace
    system
    test
    thread
    timer
    type_erasure
    wave

注意:在Windows上,您必须调用 bootstrap.bat构建"b2",然后改为调用b2 --show-libraries