Quali librerie Boost sono solo di intestazione?

Quali librerie Boost sono solo di intestazione? E quali richiedono la costruzione di librerie?

Esiste un elenco di questo tipo?

L’elenco delle librerie che richiedono la creazione è qui per i sistemi di tipo Unix e qui per Windows.

Per la versione corrente, 1.58, entrambi sono gli stessi:

  • Boost.Chrono
  • Boost.Context
  • Boost.Filesystem
  • Boost.GraphParallel
  • Boost.IOStreams
  • Boost.Locale
  • Boost.MPI
  • Boost.ProgramOptions
  • Boost.Python
  • Boost.Regex
  • Boost.Serialization
  • Boost.Signals
  • Boost.System
  • Boost.Thread
  • Boost.Timer
  • Boost.Wave

Alcune librerie hanno binari compilati separatamente opzionali:

  • Boost.DateTime
  • Boost.Graph
  • Boost.Math
  • Boost.Random
  • Boost.Test
  • Boost.Exception

Si noti che alcune librerie possono dipendere da queste (ad esempio, Asio dipende da System come indicato nei commenti), quindi potrebbe essere necessario creare qualcosa anche se la libreria desiderata non è presente nell’elenco.

Penso che questa lista non sia accurata anche se proviene dalla documentazione ufficiale:

https://svn.boost.org/trac10/ticket/13222

Puoi richiedere l’elenco delle librerie che devono essere compilate:

> ./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 

Nota : su Windows devi chiamare bootstrap.bat per compilare “b2” e quindi chiamare b2 --show-libraries .

In realtà, anche ./bootstrap.sh --show-libraries è un po ‘scorretto, perché alcune librerie dipendono da quelle librerie elencate.

È ansible ottenere l’elenco delle librerie di sola intestazione con lo strumento Boost BCP , avviando lo strumento su ogni libreria e rimuovendo quelli che collegano qualsiasi binario. Questo è ciò che è stato fatto in How To Build Header Only Boost .

Per Boost 1.67.0 l’elenco risultante era:

 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