Boost-1.84.0

Introduction to Boost

Boost provides a set of free peer-reviewed portable C++ source libraries. It includes libraries for linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions and unit testing.

This package is known to build and work properly using an LFS 12.1 platform.

Package Information

Boost Dependencies

Recommended

Optional

ICU-74.2 and Open MPI

Editor Notes: https://wiki.linuxfromscratch.org/blfs/wiki/boost

Installation of Boost

This package can be built with several jobs running in parallel. In the instructions below, <N> stands for the number of jobs. Install Boost by running the following commands:

./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j<N> threading=multi link=shared

To run Boost.Build's regression tests, issue pushd tools/build/test; python3 test_all.py; popd. With python-3.11.x all 169 tests should pass. With Python-3.12.2, 7 tests fail for undetermined reasons.

To run every library's regression tests, issue pushd status; ../b2; popd. A few tests may fail. They take a very long time (over 119 SBU at -j4) and use a very large amount of disk space (46 GB). You should use the -jN switch to speed them up.

[Note]

Note

Boost installs many versioned directories in /usr/lib/cmake. If a new version of Boost is installed over a previous version, the older cmake directories need to be explicitly removed. To do this, run as the root user:

rm -rf /usr/lib/cmake/[Bb]oost*

before installing the new version.

Now, as the root user:

./b2 install threading=multi link=shared

Command Explanations

threading=multi: This parameter ensures that Boost is built with multithreading support.

link=shared: This parameter ensures that only shared libraries are created, except for libboost_exception and libboost_test_exec_monitor which are created as static. Most people will not need the static libraries, and most programs using Boost only use the headers. Omit this parameter if you do need static libraries.

--with-python=python3: This switch ensures Python3 is used if Python2 is installed.

-jN: This switch may be added to the b2 command lines, to run up to N processes in parallel.

Contents

Installed Programs: None
Installed Libraries: libboost_atomic.so, libboost_chrono.so, libboost_container.so, libboost_context.so, libboost_contract.so, libboost_coroutine.so, libboost_date_time.so, libboost_exception.a, libboost_fiber.so, libboost_filesystem.so, libboost_graph.so, libboost_iostreams.so, libboost_json.so, libboost_locale.so, libboost_log_setup.so, libboost_log.so, libboost_math_c99.so, libboost_math_c99f.so, libboost_math_c99l.so, libboost_math_tr1.so, libboost_math_tr1f.so, libboost_math_tr1l.so, libboost_nowide.so, libboost_numpy312.so, libboost_prg_exec_monitor.so, libboost_program_options.so, libboost_python312.so, libboost_random.so, libboost_regex.so, libboost_serialization.so, libboost_stacktrace_addr2line.so, libboost_stacktrace_basic.so, libboost_stacktrace_noop.so, libboost_system.so, libboost_test_exec_monitor.a, libboost_thread.so, libboost_timer.so, libboost_type_erasure.so, libboost_unit_test_framework.so, libboost_url.so, libboost_wave.so, and libboost_wserialization.so
Installed Directory: /usr/include/boost