boost-1.86.0

Introdução ao Boost

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.

[Nota]

Nota

Esse pacote extrairá para o diretório boost-1.86.0/.

Informação do Pacote

Transferências Adicionais

Dependências de Boost

Recomendadas

Opcionais

ICU-75.1, NumPy-2.1.0 e Open MPI

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/boost

Instalação do 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.

[Nota]

Nota

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

Explicações do Comando

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.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: 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 e libboost_wserialization.so
Diretório Instalado: /usr/include/boost