Instalação da Boost C++ no Linux

Passei um pouco de trabalho até acertar. Aqui está minha receita.

Instalação

  • Baixei o .tar.gz da última versão (1.46.1) do SourceForge
  • Extraí os arquivos com o comando
    • $ tar -xvf boost_1_46_1.tar.gz
  • Seguindo a recomendação da página oficial copiei a basta extraída para /usr/local/
    • # cp -a boost_1_46_1 /usr/local/
  • O diretório com os headers (boost_1_46_1/boost) deve ser copiado para o diretório include:
    • # cp -a /usr/local/boost_1_46_1/boost /usr/include/

Algumas bibliotecas são header only, ou seja, não requerem nenhum acréscimo na compilação, como por exemplo, a classe string da Boost.

O código acima pode ser compilando somente com:
$ g++ main.cpp  -o executavel

Outras bibliotecas da Boost, a Filesystem por exemplo, necessitam dos seus binários que são contruídos com a utilização da ferramenta bjam.

  • Ir para o diretório da boost /usr/local/boost_1_46_1 e executar o bootstrap.sh:
    • Há diversas opções para a execução deste script. Estas opções podem ser vistas executando $ ./booststrap.sh –help
    • Para garantir que tudo funcione customize o máximo possível;
    • Executei da seguinte forma:
      • $ ./bootstrap.sh –with-toolset=gcc –prefix=/usr/local –includedir=/usr/include –libdir=/usr/lib –with-libraries=system,thread,date_time,regex,filesystem,serialization
  • Se tudo ocorreu bem execute:
    • $ ./bjam
      • Este comando deve retornar algo como: “The following directory should be added to compiler include paths: /usr/local/boost_1_46_1 The following directory should be added to linker library paths: /usr/local/boost_1_46_1/stage/lib”
    • # ./bjam install   (como root!)

Compilação

Há classe, como a filesystem, que requerem inclusões acicionais.
$ g++ -I/usr/local/boost_1_46_1 -lboost_filesystem main.cpp -o executavel

Fonte:

<iframe></p>

Comente este post.

Seu comentário:

*obrigatório/required