boost-1.87.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.3.

[Nota]

Nota

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

Informação do Pacote

Dependências de Boost

Recomendadas

Opcionais

ICU-76.1, NumPy-2.2.3 e Open MPI

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

Instalação do Boost

Primeiro, 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árias tarefas executando em paralelo. Nas instruções abaixo, todos os núcleos lógicos disponíveis são usados. Substitua $(nproc) pelo número de núcleos lógicos que você deseja usar se não quiser usar todos. Instale Boost executando os seguintes comandos:

./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j$(nproc) 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 os testes de regressão de cada biblioteca, emita pushd status; ../b2 -j$(nproc); popd. Alguns testes possivelmente falhem. Eles levam um tempo muito longo (mais de 119 UPC em -j4) e usam uma quantidade muito grande de espaço em disco (46 GB).

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

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_numpy313.so, libboost_prg_exec_monitor.so, libboost_program_options.so, libboost_python313.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

Descrições Curtas

libboost_*.so

contém bibliotecas que fornecem uma variedade de funções, incluindo envolucradores para NumPy, álgebra linear, geração de números pseudoaleatórios, multi camadeamento, processamento de imagens, expressões regulares, testes de unidade, localidades, JSON, registro, gráficos e depuração