web-dev-qa-db-fra.com

Quelles bibliothèques Boost sont uniquement en-tête?

Quelles bibliothèques Boost sont uniquement en-tête? Et qui nécessitent la construction de bibliothèques?

Une telle liste existe-t-elle?

54
dangerousdave

La liste des bibliothèques qui nécessitent une construction est ici pour les systèmes de type Unix et ici pour Windows.

Pour la version actuelle, 1.58, les deux sont identiques:

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

Quelques bibliothèques ont des binaires facultatifs compilés séparément:

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

Notez que certaines bibliothèques peuvent dépendre de celles-ci (par exemple, Asio dépend du système comme indiqué dans les commentaires), vous devrez donc peut-être encore créer quelque chose même si la bibliothèque que vous souhaitez ne figure pas dans la liste.

53
Mike Seymour

En fait, même ./bootstrap.sh --show-libraries est quelque peu incorrect aussi, car certaines bibliothèques dépendent de ces bibliothèques répertoriées.

Il est possible d'obtenir la liste des bibliothèques uniquement en-tête avec l'outil Boost BCP , en lançant l'outil sur chaque bibliothèque et en supprimant celles qui lient les binaires. C'est ce qui a été fait dans How To Build Header Only Boost.

Pour Boost 1.67.0, la liste résultante était:

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
9
Andrew Selivanov

Je pense que la liste ci-dessus n'est pas exacte même si elle provient de la documentation officielle. Voir https://svn.boost.org/trac10/ticket/13222

Au lieu de cela, vous pouvez interroger la liste des bibliothèques qui doivent être construites:

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

Remarque : Sous Windows, vous devez appeler bootstrap.bat pour construire "b2" puis appelez b2 --show-libraries au lieu.

5
Declan