Boost-1.84.0

Boost の概要

Boost は、公開レビューされている、移植性に優れたフリーの C++ ソースライブラリです。 ライブラリには、線形計算、擬似乱数生成、マルチスレッド、画像イメージ処理、正規表現、ユニットテストなどが含まれます。

[注記]

注記

LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。

パッケージ情報

Boost の依存パッケージ

推奨

任意

ICU-74.1, Open MPI

編集ノート: https://wiki.linuxfromscratch.org/blfs/wiki/boost

Boost のインストール

本パッケージは、複数ジョブ実行による並行ビルドが可能です。 以下の手順において <N> はそのジョブ数を表わします。 Boost を以下のコマンドの実行によりビルドします。

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

Boost.Build の縮退テストを実施するには pushd tools/build/test; python3 test_all.py; popd を実行します。 With python-3.11.x all 169 tests should pass. With Python-3.12.1, 7 tests fail for undetermined reasons.

各ライブラリの縮退テストをすべて実施するには pushd status; ../b2; popd を実行します。 失敗するテストが多少あります。 そのテストには処理時間が相当 (-j4 指定でも 119 SBU 以上) かかり、ディスク消費も 46 GB は必要になります。 実施する際には -jN スイッチを必ず指定して高速化を図るようにしてください。

[注記]

注記

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.

root ユーザーになって以下を実行します。

./b2 install threading=multi link=shared

コマンド説明

threading=multi: このパラメーターは、マルチスレッドサポートを含めて Boost をビルドすることを指示します。

link=shared: このパラメーターは共有ライブラリのみを生成するようにします。 ただし libboost_exception と libboost_test_exec_monitor はスタティックライブラリを生成します。 スタティックライブラリは通常は必要がありません。 Boost を利用するプログラムは、たいていはヘッダーファイルを単に指定するだけです。 もしスタティックライブラリを必要とするなら、このパラメーターを取り除いてください。

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

パッケージ構成

インストールプログラム: なし
インストールライブラリ: 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, libboost_wserialization.so
インストールディレクトリ: /usr/include/boost