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!)
- $ ./bjam
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:
- http://www.boost.org/doc/libs/1_46_1/more/getting_started/unix-variants.html#id24
- Mais algumas tentativas e erros.
<iframe></p>
April 6th, 2011 // categoria
Uncategorized // tags:
//
Sem Comentários