Ponto V!

Home C/C++ Visual C++ Compilando a Boost no Visual - 2009
Bruno Crivelari Sanches
Compilando a Boost no Visual - 2009Imprimir
Escrito por Bruno Crivelari Sanches

O processo de compilação da biblioteca mudou, para versões mais novas, utilize o artigo: Compilando a Boost com Visual C++ – Versão 2010

Este tutorial visa ser um guia para aqueles que pretendem utilizar a Boost junto com o Visual Studio C++, mostrando passo a passo como instalar e usar esta excelente biblioteca.

Baixando a Boost

Esta é a etapa mais simples de todas, basta acessar o site oficial, e clicar no link “Download” do lado direito da tela. A versão 1.39.0 (a ultima lançada até o dia que esse artigo foi publicado) pode ser baixada clicando aqui.

No meu caso utilizo a versão zip do pacote, mas todos os outros pacotes acredito que possuam o mesmo conteúdo.

Após o download extraia o conteúdo dos arquivos para o diretório de bibliotecas que você costuma utilizar, no meu caso c:\develop\libs.

Depois de extrair os arquivos é necessário baixar o bjam, que é a ferramenta de compilação da Boost, a ultima versão pode ser encontrada clicando aqui.

Após concluído o download do bjam extraia o arquivo exe para o mesmo diretório em que a Boost foi colocada (no meu caso C:\develop\libs\boost_1_39_0).

Compilando

Agora com as ferramentas prontas é necessário rodar o bjam, para tal acesse o console do Visual Studio (não o console padrão do Windows) clicando em “Iniciar” –> Todos os programas –> Microsoft Visual Studio –> Visual Studio Tools –> Visual Studio 2008 Command Prompt.

Com o console aberto abra o diretório da Boost (no meu caso digito: cd \develop\libs\boost_1_39_0). Dentro do diretório da boost digite “bjam” e ENTER.

Agora como já diz o programa, paciência…

Se tudo correu bem, muitos minutos depois a compilação deve estar completa, as vezes aparecem alguns warnings, que eu simplesmente ignoro.

Configurando o Visual

O jeito mais pratico de configurar o visual na minha opinião é criando uma variável de ambiente que contenha o diretório da Boost, fica mais pratico na hora de atualizar as versões (se não quiser criar a variável, basta ir para o próximo paragrafo), então primeiramente clique em “Iniciar” –> Botão direito em “Meu Computador” –> Propriedades. Na janela que se abrir, clique em “Avançado”, depois no botão “Variáveis de Ambiente”. Na caixa “Variáveis do Sistema”, clique em “Novo”. Agora entre com o nome (ex: BOOST_HOME), e o valor, que é o diretório onde a boost foi instalada (c:\develop\libs\boost_1_39_0 no meu caso), agora é ir clicando em Ok até fechar tudo.

O próximo passo é abrir o visual (se o seu visual já estava aberto e você criou a variável, feche ele e abra novamente). Dentro do visual acesse “Tools” –> “Options”, expanda a linha “Projects and Solutions” –> “VC++ Directories”.

Com a janela de configuração de diretórios podemos configurar os diretórios utilizados pelo visual durante builds, o primeiro a ser configurado é o de include (a ordem não importa aqui), então do lado direito, na caixa de seleção “Show directories for”, selecione “Include Files”. Basta clicar na primeira linha vazia após o ultimo item e entrar com o diretório, que no meu caso foi: $(BOOST_HOME). Caso eu não tivesse criado a variável, o valor teria sido: c:\develop\libs\boost_1_39_0.

Configurando diretórios de include

Por fim é necessário configurar o diretório de bibliotecas selecionando “Libraries Files” na caixa “Show Directories for” e entrando com o diretório das libs, que no meu caso foi: $(BOOST_HOME)\stage\lib, se não estiver usando a variável, basta então: c:\develop\libs\boost_1_39_0\stage\lib, note que o diretório varia de acordo com o diretório que foi usado na instalação, mas o principal é o sub-diretório “stage\lib”.

visual_boost_02

Tendo inserido os diretórios, clique em Ok para salvar.

Testando a Instalação

Para testar a instalação crie um novo projeto no Visual (se não sabe como fazer, clique aqui) e use um código exemplo da Boost, eu utilizei o código abaixo:

#include <boost/filesystem/operations.hpp>
#include <iostream>

namespace bf = boost::filesystem; 
int main(int, char **) 
{ 
    bf::path p("first.cpp"); 
    if(bf::exists(p)) 
        std::cout<< p.leaf() << "EXISTS.\N"; 
     else 
        std::cout<< p.leaf() <<  "does not exist.\n";

    return 0; 
}

O código compilou sem problemas aqui e executou perfeitamente, sendo assim, instalação concluída.

Note que a Boost automaticamente já linka o código com as bibliotecas necessárias, com algumas bibliotecas é necessário configurar o arquivo lib a ser usado, mas isso fica para outro post.


Comentários (12)
  • Abdon
    avatar

    Quando eu baixei o boost jam, não existe nenhuma arquivo executavel no pacote, o que é preciso fazer é descompactar todo o conteúdo da biblioteca e executar dentro da linha de comando do VS o build.bat, este sim era gerar o bjam.exe em uma pasta chamada bin.ntx86.
    Isso pelo menos na versão o bjam que eu baixei que é a versão 3.1.17

  • Bruno Crivelari Sanches
    avatar

    Estranho, acabei de entrar no link e tem o arquivo: boost-jam-3.1.17-1-ntx86.zip

    Este arquivo vem apenas com o exe e um readme.txt.

  • Abdon
    avatar

    Talvez eu tenha baixado o errado então, desculpe.

  • Bruno Crivelari Sanches
    avatar

    Não precisa se desculpar, lá tem toneladas de arquivo e é fácil se confundir.

  • Mateus
    avatar

    Bruno, compilei e configurei o VS2010 conforme o tutorial, porém na hora de compilar o programa de teste aparece o seguinte erro:

    cannot open file 'libboost_filesystem-vc100-mt-gd-1_39.lib'

  • Bruno Crivelari Sanches
    avatar

    Verfique primeiro se o arquivo libboost_filesystem-vc100-mt-gd-1_39.lib existe.

    Se sim, acho que faltou configurar os diretórios de biblioteca, que é aquele do segundo passo do item "Configurando o Visual".

    Detalhe que o Visual 2010 é um pouco diferente essa configuração, a opção é meio escondida, mas o conceito é o mesmo.

  • Bruno Crivelari Sanches
    avatar

    Verfique primeiro se o arquivo libboost_filesystem-vc100-mt-gd-1_39.lib existe.

    Se sim, acho que faltou configurar os diretórios de biblioteca, que é aquele do segundo passo do item "Configurando o Visual".

    Detalhe que o Visual 2010 é um pouco diferente essa configuração, a opção é meio escondida, mas o conceito é o mesmo.

  • Mateus
    avatar

    Eu achei a libboost_filesystem-vc-mt-gd-1_39.lib e as configurações do VS2010 estão corretas, já verifiquei.

    Porém continua a dar o erro pois ele precisa do libboost_filesystem-vc100-mt-gd-1_39.lib

  • Mateus
    avatar

    Descobri o erro:

    Hi !
    On Sunday 24 May 2009, Mantas Matelis wrote:
    > Hi, is
    > vc10 support implemented?

    No, it was just implemented in trunk...
    > And if so, is this the right way to build
    > for vc10:bjam.exe
    > --build-dir="c:\development\boost" --prefix="c:\development\boost"
    > --build-type=complete toolset=msvc-100 stage >
    > C:\development\boost\build-output-vc10.txt

    toolset=msvc-10.0 would be better.
    You can find the patch at
    http://svn.boost.org/trac/boost/changeset/53206
    > When running this, everything builds, but the files have improper
    > names. Visual studio expects libboost_filesystem-vc100-mt-gd-1_39.lib
    > but in the stage directory there are no files with vc100, just vc.

    Please try to patch 1.39 with the patch above. Or check out trunk for
    experiments (might be a better idea...)
    Yours,
    Jürgen

    Ele não reconhece o VS2010 por isso não compila a boost para uso do VS2010 corretamente, quem usa o VS2010 deve baixar o patch http://svn.boost.org/trac/boost/changeset/53206 e alterar pelo arquivo.

    []'s

  • Bruno Crivelari Sanches
    avatar

    Experimenta usar a versão recente da boost, a 1.44, já deve ter isso corrigido.

    T+

  • Rodrigo  - Erro BOOSTC++ ao compilar código
    avatar

    Compilei a lib, mas sempre que eu adiciono algum header no meu projeto, dá erro no arquivo ctime

    eu não consigo encontrar , você pode me ajudar?

    Error 23 error C2873: 'time' : symbol cannot be used in a using-declaration c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ctime 23 1

  • Bruno Crivelari Sanches
    avatar

    Da erro exatamente no include? Nunca tive esse problema. Qual header que você inclui que da esse erro? Qual a versão do visual?

    T+

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