Help Save the World ------------------- Boost is a fairly extensive set of libraries, of which I personally use but a very small part. I greatly appreciate folks that send patches to the BTS. Please do have a look at the outstanding bug reports and send me hints or patches if you have extra information. Getting Started --------------- The following table shows which components use a library (shared or static) and the corresponding "-l" flag. All libraries are built for multithreaded applications. Component Link Flag Library Type --------- --------- ------------ Boost.Atomic -lboost_atomic static shared Boost.Chrono -lboost_chrono static shared Boost.Container -lboost_container static shared Boost.Context -lboost_context static shared Boost.Coroutine -lboost_coroutine static shared Boost.Date_Time -lboost_date_time static shared Boost.Exception -lboost_exception static x Boost.Fiber -lboost_fiber static shared Boost.Filesystem -lboost_filesystem static shared Boost.Graph -lboost_graph static shared Boost.Graph_parallel -lboost_graph_parallel static shared Boost.IOStreams -lboost_iostreams static shared Boost.Locale -lboost_locale static shared Boost.log -lboost_log static shared -lboost_log_setup static shared Boost.Math -lboost_math_c99 static shared -lboost_math_c99f static shared -lboost_math_c99l [1] static shared -lboost_math_tr1 static shared -lboost_math_tr1f static shared -lboost_math_tr1l [1] static shared Boost.MPI -lboost_mpi static shared Boost.Program_options -lboost_program_options static shared Boost.Python -lboost_python-pyPQ [2] static shared -lboost_python [3] static shared -lboost_mpi_python-pyPQ [2] static shared -lboost_mpi_python [3] static shared Boost.Random -lboost_random static shared Boost.Regex -lboost_regex static shared Boost.Serialization -lboost_serialization static shared -lboost_wserialization static shared Boost.Signals -lboost_signals static shared Boost.System -lboost_system static shared Boost.Test -lboost_prg_exec_monitor static shared -lboost_test_exec_monitor static x -lboost_unit_test_framework static shared Boost.Thread -lboost_thread static shared Boost.Timer -lboost_timer static shared Boost.TypeErasure -lboost_type_erasure static shared Boost.Wave -lboost_wave static shared [1] Not available on all architectures. [2] Boost.Python is built for multiple Python versions. For example, Boost 1.48.0 is built for Python 2.6, 2.7, and 3.2; the corresponding libraries are -lboost_python-py26, -py27, and -py32. [3] Symbolic link to the default version of Python (as of build time). Most of Boost is installed using the package libboostX.Y-dev. The components with a shared library have separate -dev packages. There is extensive documentation available in the libboostX.Y-doc package and at www.boost.org. Debian Packaging of Boost ------------------------- Upstream releases quarterly without guaranteeing any backwards compatibility. Debian chooses to package two versions of Boost simultaneously, to enable users to make the transition on their own time. The -dev packages are decorated with the Boost version, e.g. libboost1.39-dev and libboost1.40-dev. If your code builds only with a specific version of boost, you can directly install that specific version. On the other hand, many of the mature Boost libraries hardly change from one version to the next. If your code uses only such stable libraries, then continually installing versioned -dev packages is a nuisance. Debian therefore has a set of "default" Boost development packages without a version number; e.g. libboost-dev. These packages will pull in the version of boost considered most suitable at any given time. If your code is not tied to a specific Boost version, you can use the unversioned development packages. This strategy was hashed out on debian-release in the Spring of 2009. See threads starting at: http://lists.debian.org/debian-release/2009/03/msg00147.html http://lists.debian.org/debian-release/2009/04/msg00251.html http://lists.debian.org/debian-release/2009/05/msg00011.html Example Code ------------ All example code is shipped in libboostX.Y-doc package. Some of the example code is linked to by the documentation, and thus appears in a directory named /usr/share/doc/libboostX.Y-doc/HTML/libs/*/example Example code that is not linked from the documentation appears in a directory under /usr/share/doc/libboostX.Y-doc/examples/libs/ Use of boost/nondet_random.hpp ------------------------------ The use of this header file is subject to the availability of class boost::random_device::impl. Boost libraries provide only an example implementation which the user may use to fit her needs. Such implementation is distributed by libboostX.Y-dev Debian package in file /usr/share/doc/libboostX.Y-dev/examples/random_device.cpp. This file is generally good enough for most linux users. Simply copy and modify to suit your needs. Boost.Test main() function -------------------------- The Boost unit test framework defines a main() function in the static library boost_unit_test_framework.a. Prior to v 1.34, the shared library also defined main() but it no longer does. Please see the manual and the following thread for more details http://lists.boost.org/boost-users/2008/03/34486.php -- Steve M. Robbins , Sat, 15 Oct 2016 22:38:12 -0500