O Boost fornece um conjunto de bibliotecas gratuitas de fonte C++ portáteis revisadas por pares. Inclui bibliotecas para álgebra linear, geração de números pseudo-aleatórios, multi encadeamento, processamento de imagens, expressões regulares e testes de unidade.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.2.
Esse pacote extrairá para o diretório boost-1.86.0
/.
Transferência (HTTP): https://github.com/boostorg/boost/releases/download/boost-1.86.0/boost-1.86.0-b2-nodocs.tar.xz
Soma de verificação MD5 da transferência: 7ad40a9d9d1db59ee2ed62e8fa7134ed
Tamanho da transferência: 45 MB
Espaço em disco estimado exigido: 899 MB (197 MB instalado)
Tempo de construção estimado: 1,8 UPC (Usando paralelismo=4; adicionar 0,1 UPC para testes)
ICU-75.1, NumPy-2.1.0 e Open MPI
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/boost
Primeiro, corrija um problema com Boost e NumPy-2.1.0 que faz com que a construção falhe:
patch -Np1 -i ../boost-1.86.0-upstream_fixes-1.patch
Em seguida, corrija um problema de construção que ocorre na biblioteca stacktrace. Esse problema é específico para sistemas i686.
case $(uname -m) in i?86) sed -e "s/defined(__MINGW32__)/& || defined(__i386__)/" \ -i ./libs/stacktrace/src/exception_headers.h ;; esac
Esse pacote pode ser construído com vários trabalhos executando em
paralelo. Nas instruções abaixo, <N>
representa o número de
trabalhos. Instale o Boost
executando os seguintes comandos:
./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j<N>
threading=multi link=shared
Para executar os testes de regressão do Boost.Build, emita pushd tools/build/test; python3 test_all.py; popd.
Para executar cada um dos testes de regressão da biblioteca, emita
pushd status; ../b2;
popd. Uns poucos testes possivelmente falhem. Eles
tomam um tempo muito longo (mais que 119 UPC em -j4) e usam uma
quantidade muito grande de espaço em disco (46 GB). Você deveria
usar a chave -jN
para
acelerá-los.
O Boost instala muitos diretórios versionados em /usr/lib/cmake.
Se uma nova versão do Boost for
instalada sobre uma versão anterior, [então] os diretórios do
cmake mais antigos precisam ser explicitamente removidos. Para
fazer isso, execute como o(a) usuário(a) root
:
rm -rf /usr/lib/cmake/[Bb]oost*
antes de instalar a nova versão.
Agora, como o(a) usuário(a) root
:
./b2 install threading=multi link=shared
threading=multi
: Esse
parâmetro garante que Boost seja
construído com suporte a multi encadeamento.
link=shared
: Esse parâmetro
garante que somente bibliotecas compartilhadas sejam criadas,
exceto "libboost_exception" e "libboost_test_exec_monitor" que são
criadas como estáticas. A maioria das pessoas não precisará das
bibliotecas estáticas, e a maioria dos aplicativos que usam o
Boost usa somente os cabeçalhos.
Omita esse parâmetro se precisar das bibliotecas estáticas.
--with-python=python3
: Essa
chave garante que o "Python3" seja usado se o "Python2" estiver
instalado.
-jN
: Essa chave pode ser adicionada às
linhas de comando b2,
para executar até N processos em paralelo.