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.
This package is known to build and work properly using an LFS 11.3 platform.
Téléchargement (HTTP) : https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2
Somme de contrôle MD5 : 3276c0637d1be8687740c550237ef999
Taille du téléchargement : 113 Mo
Estimation de l'espace disque requis : 1,1 Go (195 Mo installés)
Estimation du temps de construction : 1,4 SBU (avec parallélisme = 4, plus 1,2 SBU pour les tests)
Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/boost
Un changement dans cette version de boost casse les quelques paquets qui utilisent le module phoenix lors de la compilation avec la version actuelle de GCC. Dans BLFS, cela affecte LibreOffice-7.5.0.3. Corrigez cela avec la commande suivante :
sed -i '/#include.*phoenix.*tuple.hpp.*/d' \ boost/phoenix/stl.hpp
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. Avec python-3.10.x, les 168 tests devraient tous réussir. Avec Python-3.11.2, 20 tests échouent pour des raisons indéterminées.
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.
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
sed -i '/#include
...
: cela supprime l'inclusion de boost/phoenix/stl/tuple.hpp
dans cette
bibliothèque d'en-têtes, ce qui permet aux applications qui
l'utilisent de se lier avec un C++ récent. Cela pourrait aussi se
faire en modifiant /usr/include/boost/phoenix/stl.hpp
si cette
version de boost a déjà été installée sans ce sed.
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.