boost-1.86.0

Introduction à Boost

Boost offre un ensemble de bibliothèques sources libres, revues par les pairs et portables en C++. Il inclut des bibliothèques d'algèbre linéaire, de génération de nombres pseudo-aléatoires, de multithreading, de traitement d'images, d'expressions régulières et de tests d'unités.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

[Note]

Note

Ce paquet s'extrait dans le répertoire boost-1.86.0/.

Informations sur le paquet

Téléchargements supplémentaires

Dépendances de Boost

Recommandées

Facultatives

ICU-75.1, NumPy-2.1.0 et Open MPI

Notes des auteurs : https://wiki.linuxfromscratch.org/blfs/wiki/boost

Installation de Boost

Tout d'abord, corrigez un problème avec Boost et NumPy-2.1.0 qui fait échouer la construction :

patch -Np1 -i ../boost-1.86.0-upstream_fixes-1.patch

Ensuite, corrigez un problème de construction dans la bibliothèque stacktrace. Ce problème est spécifique aux systèmes i686.

case $(uname -m) in
   i?86)
      sed -e "s/defined(__MINGW32__)/& || defined(__i386__)/" \
          -i ./libs/stacktrace/src/exception_headers.h ;;
esac

On peut construire ce paquet avec plusieurs taches en parallèle. Dans les instructions ci-dessous, <N> correspond au nombre de taches. Installez Boost en exécutant les commandes suivantes :

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

Pour lancer les tests de régression de Boost.Build, lancez pushd tools/build/test; python3 test_all.py ; popd.

Pour lancer tous les tests de régression de chaque bibliothèque, tapez pushd status; ../b2; popd. Quelques tests peuvent échouer. Ils prennent beaucoup de temps (plus de 119 SBU avec -j4) et utilisent un espace disque volumineux (46 Go). Vous devriez utiliser le paramètre -jN pour les accélérer.

[Note]

Note

Boost installe plusieurs répertoires versionnés dans /usr/lib/cmake. Si une nouvelle version de Boost est installée par-dessus une version précédente, les anciens répertoires cmake doivent être explicitement supprimés. Pour cela, exécutez en tant qu'utilisateur root :

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

avant d'installer la nouvelle version.

Maintenant, en tant qu'utilisateur root :

./b2 install threading=multi link=shared

Explication des commandes

threading=multi : ce paramètre assure que Boost soit bien construit avec le support du multithreading.

link=shared : Ce paramètre fait que seules les bibliothèques partagées sont créées, excepté pour libboost_exception et libboost_test_exec_monitor qui sont créés statiquement. La plupart des gens n'auront pas besoin des bibliothèques statiques et la plupart des programmes utilisant Boost se servent uniquement des en-têtes. Vous pouvez omettre ce paramètre si vous avez besoin des bibliothèques statiques.

--with-python=python3  ce paramètre s'assure que Python 3 est utilisé si Python 2 est installé.

-jN : Ce paramètre peut être utilisé dans la ligne de commande b2, pour lancer N processus en parallèle.

Contenu

Programmes installés: Aucun
Bibliothèques installées: libboost_atomic.so, libboost_charconv.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 et libboost_wserialization.so
Répertoire installé: /usr/include/boost