Ponto V!

Home C/C++ Visual C++ Compilando a Boost com Visual C++ – Versão 2010
Bruno Crivelari Sanches
Compilando a Boost com Visual C++ – Versão 2010Imprimir
Escrito por Bruno Crivelari Sanches

Já tem algum tempo que escrevi o artigo sobre como compilar a Boost e configurar o Visual Studio para utiliza-la. O processo de compilação infelizmente mudou e assim foi preciso criar este novo artigo para manter o portal atualizado. Felizmente as mudanças simplificaram o processo como veremos na sequência.

Boost

A biblioteca Boost na verdade é uma vasta coleção das mais variadas bibliotecas. Desde simples macros a uma biblioteca completa para comunicação de processos. Existem novos conteineres, como já vimos no artigo de Gerenciamento de Rercursos, uma coleção completa de smart pointers, threads, tuplas, etc. Para uma lista completa do que existe disponível, recomendo uma olhada na lista que existe no próprio site: Boost Library Documentation.

Todas as bibliotecas existentes são criadas visando a maior compatibilidade possível com os atuais padrões do C++ e muitas vezes são criadas por pessoas que estão envolvidas diretamente no desenvolvimento do padrão C++. A Boost acaba inclusive servindo como “porta de entrada” para a biblioteca padrão, devido a muitas bibliotecas dela acabarem sendo incorporadas no padrão C++.

Um detalhe importante e que confude muitos que não conhecem a biblioteca é que ela não tem o objetivo de substituir qualquer biblioteca ou funcionalidade do C++, mas apenas de complementar o que já existe, assim não existem questões como: “Devo usar STL ou Boost?”. Atualmente algumas poucas bibliotecas da Boost podem entrar em conflito com o padrão C++0x, pois são bibliotecas da Boost que foram adotadas pelo comitê e agora podem ser também encontradas no namespace std, como, por exemplo, std::array e boost::array. Nesse caso, eu sugiro utilizar a versão existente no padrão C++, a não ser é claro que no seu projeto ainda não possua a disposição um compilador C++0x.

Outro fato importante é de que não é preciso conhecer toda a biblioteca para utiliza-la. Se precisa, por exemplo, apenas de uma biblioteca para manipulação de grafos, então estude e utilize apenas a biblioteca boost::graph, não é preciso conhecer todas as outras bibliotecas.

Por fim, vale lembrar que algumas bibliotecas não precisam ser compiladas para serem usadas, uma lista pode ser encontrada na documentação: Header-Only Libraries.

Instalando a Boost

O primeiro passo da instalação é realizar o download da bilioteca, que pode ser encontrada clicando-se aqui. A versão mais recente da data da escrita desse artigo é a 1.47. Caso a forma de compilação venha a mudar em alguma outra versão, irei atualizar o artigo.

Após o download, extraia os arquivos para o diretório onde você armazena bibliotecas que utiliza, no caso do meu computador, estas ficam armazenadas no caminho d:\libs\. A partir deste ponto vou assumir que a biblioteca esteja instalada no diretório d:\libs. Caso utilize outro caminho, não tem problema algum, apenas certifique-se de adaptar os passos a seguir de acordo com o caminho que usou.

Feito a extração dos arquivos, o resultado vai ser o diretório boost_1_47_0 dentro do diretório onde foi instalada a Boost, no meu caso: d:\libs\boost_1_47_0.

O próximo passo é abrir um terminal da SDK do Windows, que é necessária para compilação da biblioteca. Caso não tenha a SDK do Windows instalada, veja como fazer a instalação da mesma neste outro aritgo. Para abrir o terminal, clique no botão iniciar do Windows e procure por “Microsoft Windows SDK v?.??”. Onde ?.?? é a versão da SDK que você instalou, clicando deve surgir um atalho para Cmd Shell, clique nele e você terá seu terminal aberto. É importante lembrar que é fundamental usar o terminal da SDK, apesar de ser quase idêntico ao terminal padrão do Windows, ele já vem com o ambiente configurado para que o compilador do Visual C++ possa ser usado.

Com o terminal aberto, navegue até o diretório da biblioteca, no meu caso, a sequência de comandos: “d:” e depois cd libs\boost_147_0:

No diretório da biblioteca, bastão então digitar o comando “booststrap”, que irá analisar seu ambiente e preparar a biblioteca para compilação, ao final da execucão deve surgir uma tela semelhante a esta abaixo:

Agora a biblioteca esta pronta para ser compilada, basta então digitar o comando “b2” para que seja iniciado o longo processo de compilação:

Depois da espera toda a Boost esta pronta para ser usada. No final deve surgir algo semelhante a tela abaixo:

Mudando a Versão do Compilador

No meu computador existem duas versões do Visual C++ instaladas, além do mingw, caso você esteja nessa situação pode passar pelo desagrádavel problema do sistema de construção da biblioteca se confundir e nesse caso vai ser preciso dizer ao sistema que versão ou qual compilador usar. Para isso basta usar a opção –toolset, alguns exemplos:

  • b2 –toolset=msvc-9.0
  • b2 –toolset=msvc-10.0

Observe que existem dois “-“ (hifens) antes da opção toolset.

Configurando o Compilador

Até o momento, apenas construímos os binários da biblioteca, mas o Visual ainda nem sabe da presença dela, para isso é precisso configurar os diretórios de include e de biblioteca para que a Boost possa ser usada. Neste artigo não mostrarei como fazer isso, pois temos no PontoV dois artigos sobre o assunto:

Configurado o compilador e a IDE, a utilização da Boost é idêntica a de qualquer outra biblioteca, faça o include dos arquivos de cabeçalho que precisa e pronto. Detalhe que usando o Visual C++ não é preciso adicionar os arquivos lib as configurações do linker, pois isto vai ser feito automaticamente quando você der include dos arquivos da Boost.

Para facilitar o trabalho, ai vão os diretórios que devem ser adicionados a configuração do compilador:

  • include: “d:\libs\boost_1_47_0”, ou seja, o diretório onde foi instalado a biblioteca
  • bibliotecas (libs): “d:\libs\boost_1_47_0\stage\lib\”

Com estes poucos passos já é possível utilizar essa grande (em vários sentidos Smile )biblioteca no seu projeto!


Comentários (4)
  • Oseas  - Parabens
    avatar

    Ótimo artigo me ajudou muito, vc está de parabéns!

  • Carlos Eduardo
    avatar

    :woohoo: Gostei muito =)

  • Thomas
    avatar

    Aí, to querendo aprender C++ O Mais rápido possível, voce tem uma dica, de onde encontrar tutoriais completos e fáceis?

Escrever um comentário
Your Contact Details:
Gravatar enabled
Comentário:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):S:!::?::idea::arrow:
Security
Por favor coloque o código anti-spam que você lê na imagem.
LAST_UPDATED2  

Busca

Linguagens

Twitter