• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.. Copyright David Abrahams 2006. Distributed under the Boost
2.. Software License, Version 1.0. (See accompanying
3.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4
5Header-Only Libraries
6=====================
7
8The first thing many people want to know is, “how do I build
9Boost?”  The good news is that often, there's nothing to build.
10
11.. admonition:: Nothing to Build?
12
13  Most Boost libraries are **header-only**: they consist *entirely
14  of header files* containing templates and inline functions, and
15  require no separately-compiled library binaries or special
16  treatment when linking.
17
18.. .. _separate:
19
20The only Boost libraries that *must* be built separately are:
21
22* Boost.Chrono_
23* Boost.Context_
24* Boost.Filesystem_
25* Boost.GraphParallel_
26* Boost.IOStreams_
27* Boost.Locale_
28* Boost.Log_ (see `build documentation`__)
29* Boost.MPI_
30* Boost.ProgramOptions_
31* Boost.Python_ (see the `Boost.Python build documentation`__
32  before building and installing it)
33* Boost.Regex_
34* Boost.Serialization_
35* Boost.Thread_
36* Boost.Timer_
37* Boost.Wave_
38
39__ ../../libs/log/doc/html/log/installation/config.html
40__ ../../libs/python/doc/html/building.html
41
42A few libraries have optional separately-compiled binaries:
43
44* Boost.Graph_ also has a binary component that is only needed if
45  you intend to `parse GraphViz files`__.
46
47* Boost.Math_ has binary components for the TR1 and C99
48  cmath functions.
49
50* Boost.Random_ has a binary component which is only needed if
51  you're using ``random_device``.
52
53* Boost.Test_ can be used in “header-only” or “separately compiled”
54  mode, although **separate compilation is recommended for serious
55  use**.
56
57* Boost.Exception_ provides non-intrusive implementation of
58  exception_ptr for 32-bit _MSC_VER==1310 and _MSC_VER==1400
59  which requires a separately-compiled binary. This is enabled by
60  #define BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR.
61
62* Boost.System_ is header-only since Boost 1.69. A stub library is
63  still built for compatibility, but linking to it is no longer
64  necessary.
65
66__ ../../libs/graph/doc/read_graphviz.html
67