Ponto V!

Home C/C++ Visual C++ Configurando o uso de Bibliotecas no Visual 2010
Bruno Crivelari Sanches
Configurando o uso de Bibliotecas no Visual 2010Imprimir
Escrito por Bruno Crivelari Sanches

No Visual Studio 2010 uma das mudanças mais visíveis foi a forma de configurar os diretórios de include e de bibliotecas a serem usadas pelo compilador. Neste artigo veremos como configurar esses itens de forma adequada.

Caso não possua o Visual Studio, veja como instalar a versão grátis no artigo: Como utilizar o Visual Studio C++ - Parte 1

Este artigo assume que o leitor já sabe como funcionam bibliotecas nas linguagens C/C++ e deseja apenas configurar uma nova biblioteca no compilador. Caso não saiba como bibliotecas funcionam nas linguagens C/C++, recomendo a leitura de: Como Usar Bibliotecas C/C++.

Nas versões anteriores ao Visual 2010 configurar bibliotecas era algo simples, bastava acessar no menu principal: Tools –> Options –> VC++ Directories, hoje fazendo essa operação surge a tela abaixo:

Tela

Como a tela indica, esse caminho esta obsoleto e não deve ser mais usado, então como fazer?

Existem duas opções:

  • Configurar bibliotecas por projeto
  • Configurar bibliotecas de forma global

A primeira opção, também estava disponível nas versões anteriores e é bem útil quando temos uma biblioteca que vai ser usada apenas em determinado projeto, mas é incomoda quando temos vários projetos usando uma mesma biblioteca, pois temos que configurar cada um deles.

A segunda opção é a que costumávamos usar na tela acima, mas agora deve ser feita por outro caminho. De qualquer forma, vamos analisar as duas opções.

Configurando Bibliotecas Específicas para um Projeto

Como mencionado, essa opção sempre esteve disponível e é útil quando temos apenas alguns projetos que precisam de uma biblioteca especifica, para configurar basta ter um projeto aberto na sua solução, clicar com botão direito do mouse no nome do projeto que aparece no Solution Explorer e selecionar a opção Properties, como mostrado na figura abaixo:

Configurando bibliotecas por projeto

Uma tela com as opções do projeto irá surgir e primeiro vamos incluir um diretório de arquivos de cabeçalho (arquivos .h), para isso selecione na lista da esquerda a opção: Configuration Properties –> C/C++ –> General:

Configurando diretórios de include do projeto

Na tela que se abriu, repare na opção Additional Include Directories, que permite ao desenvolvedor colocar os diretórios onde o compilador vai encontrar os arquivos h de uma biblioteca. Múltiplos diretórios podem ser separados por “;” (ponto e vírgula). Clicando na opção também é possível abrir uma segunda tela de edição de diretórios com uma interface um pouco mais amigável.

Por fim, precisamos configurar o diretório onde estão os arquivos de biblioteca para que estes sejam encontrados pelo linker. Para isso, agora selecione na mesma tela a opção: Linker –> General:

Configurando Diretório de Bibliotecas

O principio dessa tela é o mesmo da anterior, na opção Additional Library Directories entre com o diretório de onde se encontram as bibliotecas que deseja utilizar.

Dessa forma simples, podemos indicar para um projeto onde estão as bibliotecas que ele vai utilizar, mas não indica quais utilizar. O artigo Como Usar Bibliotecas C/C++ demonstra como indicar ao Visual quais bibliotecas devem ser utilizadas no projeto.

Outro detalhe importante que pode passar despercebido é que por padrão todo projeto do Visual vem com duas formas de compilação pré configuradas: Release e Debug. Cada uma dessas configurações possui sua própria lista de diretórios, sendo assim é preciso configurar os diretórios para cada configuração, mesmo que sejam os mesmos para ambas.

Outra forma de realizar o mesmo processo é selecionar diretamente nessa mesma tela a opção “VC++ Directories”, que permite na mesma tela configurar os diretórios de include e de biblioteca:

Configurando na nova tela

Esta tela realiza o mesmo trabalho das duas anteriores e esta disponível apenas na versão 2010.

Configurando Bibliotecas de Forma Global

Como já vimos como configurar bibliotecas de forma específica para um projeto, vamos ver agora como adicionar elas de forma global, para que possam ser acessíveis por todos os projetos.

Esse é o caminho que anteriormente utilizavamos a tela do “VC++ Directories”, que agora se tornou obsoleta. Essa mudança ocorreu devido a reforma que a Microsoft fez no sistema de construção de programas do Visual.

Para configurar os diretórios, mesmo de forma global é preciso ter um projeto carregado, após carregar o projeto selecione no menu principal: View –> Property Manager. Deve surgir uma nova aba no visual chamada de Property Manager. Selecione então uma das configurações do seu projeto (Debug | WIn32), a expanda e deve surgir o item "Microsoft.Cpp.Win32.user”, selecione este item e pressione o botão direito do mouse e escolha a opção properties, como mostrado abaixo:

Propriedades do usuário

Caso a opção Property Manager não esteja disponível, selecione no menu principal Tools –> Settings e marque a opção Expert Settings.

Na nova tela que se abriu, selecione Common Properties –> VC++ Directories e pronto, temos a tela de configuração. Basta então adicionar (cuidado para não apagar o conteúdo já existente) os diretórios de include na caixa Include Directories e os diretórios de bibliotecas na caixa Library Directories:

Configuração de diretórios do usuário

Clicando em Ok as configurações vão ser salvas e vão ser aplicadas a todos os projetos.

Considerações Finais

Neste artigo vimos duas formas de configurar bibliotecas a serem utilizadas com o Visual Studio 2010. Mas é importante ressaltar que o artigo mostra apenas como configurar o compilador de forma que ele saiba onde procurar por bibliotecas, mas não mostra como dizer ao compilador que bibliotecas utilizar. Para isso recomendo a leitura do artigo: Como Usar Bibliotecas C/C++.


Comentários (30)
  • Anônimo
    avatar

    :D eu aprendi isso lendo o wiki da biblioteca clanlib, mas ja havia me esquecido como fazia, dai eu ficava pensando: "Como será que fazia mesmo para declarar de forma global?" Não achava mais aonde eu havia encontrado na wiki de lá =x

    Obrigado Bruno

  • Bruno Crivelari Sanches
    avatar

    Essa opção ficou chata de encontrar mesmo!

  • Marcos Vinícius Koga e Silva  - Timesaver
    avatar

    Dude, muito bom o artigo! frequentemente acabo esquecendo de algum passo do preparo de um novo projeto e ter esse guia rápido para relembrar é uma mão na roda! =)

    Valeu Bruno! =D

  • Bruno Crivelari Sanches
    avatar

    Obrigado Marcos!

  • kleber  - re: duvidas em Configurando o uso de Bibliotecas n
    avatar
    Bruno Crivelari Sanches Escreveu:
    Essa opção ficou chata de encontrar mesmo!

    olá bruno! blz? cara eu fiz o passo a passo e não deu certo, vc tem mais alguma dica?

  • Anônimo
    avatar

    Sem saber o erro não. Poste aqui a mensagem de erro do compilador e explique o que você estava tentando fazer.

  • Junior  - Problemas com as configurações do Visual C++ 2012
    avatar

    Oi cara tudo bem... Seguinte

    Quando compilo um programa qualquer ele me da uma mensagem de erro "Unable to start program" aí aparece o caminho da dll ...
    Eu sou programador em Delphi e C++ Builder, mas estou em uma nova empreitada de aprender o visual studio c++

    Pode me ajudar ? já vi na internet e vi que precisa configurar as libs e includes, mas vi no seu site e mesmo assim não tive sucesso....

    Aguardo sua ajuda
    Obrigado desde já pelo sei site.
    Wjr

  • Junior  - error LNK1561: entry point must be defined
    avatar

    Fiz a configuração toda rodou em console,mas winforms da erro: Error 1 error LNK1561: entry point must be defined I:\ProjetosC++\GUI\GUI\LINK GUI

    O que devo fazer ?

    Fico no aguardando ...

    T+

  • Anônimo
    avatar

    Não existe função main. Se você mudou a configuração do projeto para winforms, a main padrão do C/C++ não funciona. Use o wizard do Visual que ele já gera um programa funcional para você usar inicialmente.

  • Junior  - WinForms
    avatar

    Pois é cara eu estou usando um visual Studio 2012 e não existe wizard com ele, algumas coisas diferentes do que se encontra na internet ....

    Vou tentar mais uma vez ...

    T+

  • Anônimo
    avatar

    Eu uso Visual 2012 e em File -> NEw Project existe wizard para tudo quanto é tipo de projeto, mesmo na versão express.

  • Junior  - Visual 2012 WinForms
    avatar

    Vou dar mais uma estudada
    Obrigado Sr. Guru !
    T+

  • Junior  - Tutorial passo a passo com um WinFom de emplo
    avatar

    ... então cara já tentei aqui e não consegui, infelizmente...

    Será que daria para vocês fazerem um tutorial completo só com winform passo a passo uma telinha de winform de exemplo apenas sera que daria para vocês fazerem ?
    Tenho a certeza que ajudaria muita gente que esta começando com o Visual Studio C++ porque não é tão difundido o C++ do Visual Studio ...

    Da uma pensada aí cara ! Um exemplo simples passo a passo vai nos ajudar muito !

    Wjr

  • Anônimo
    avatar

    Nosso enfoque aqui é criação de jogos, existem centenas de tutorias e documentos sobre winform na web. Só usar o wizard do visual que ele já cria uma aplicação winform funcional com mais de uma tela, msdn explica tudo em detalhes.

  • Junior  - Os links....
    avatar

    Pois é Bruno to com dificuldade, mas eu não programo para jogos eu programo para banco de dados...
    Mas quando puder mande para mim alguns links

    Desde já agradeço pela atenção e desculpe aí pela mancada não sabia que era só para jogos.... :)

    Um abraço.

  • Anônimo
    avatar

    Nosso enfoque aqui é jogos, então os tutorias de alguma forma precisam ser relacionados. Winforms não é algo usado em jogos (no máximo em ferramentas), mas mas tem assuntos que acho muito mais interessante para tratar aqui do que winforms.

    Mas winforms não é complexo, no site da microsoft tem toda a documentação e explica muito bem, eu aprendi programar winforms por lá sem grandes dificuldades.

  • Marta Freitas  - Erro ao chamar um metodo do ".h"
    avatar

    Olá Bruno!
    Fiz todos os passos para incluir na path, porem quando tento fazer no main o include do .h, aparece o seguinte erro:
    IntelliSense: cannot open source file "MatrixSerialization.h"

    c:\documents and settings\all users\dados de aplicativos\nvidia corporation\nvidia gpu computing sdk 4.2\c\src\vectoradd\libs\matrixmarketserialization .h


    Pode me ajudar?

  • Anônimo
    avatar

    Marta,

    se o arquivo que você colocou include é o MatrixSerialization.h, a primeira coisa a fazer é checar no seu computador onde esse arquivo esta localizado.

    Após encontrar, checar se o diretório na lista de diretórios de include compilador contém este diretório.

    No path que você colocou na mensagem, observe que o nome do arquivo é diferente.

  • Antonio  - Falha ao instalar
    avatar

    Muito bom o seu tutorial! mas eu não consigo configurar as bibçiotecas do DirectX, eu consegui fazer no code::blocks, mas queria instalar no VC++, configurei os headers em C/C++ -> General, os headers estão no local que própio instalador do DirectX coloca, mas fiquei na dúvida em usar $(SDKD3)\Include/lib/x86, mas seguindo o tutorial ainda assim nãio consegui

  • Anônimo
    avatar

    Se você já tiver o Visual instalado e instalar a SDK, ele já configura.

    Se ele não configurar, basta fazer o Visual apontar para o diretório de includes e de libs.

  • Antonio  - re: Falha ao instalar
    avatar

    Sim sim, eu fiz isso, mas ele fala que existe uma dependecia mal resolvida:

    1>------ Build started: Project: teste_directX, Configuration: Debug Win32 ------
    1>main.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D@@YAJPAUHWND__@@@Z)
    1>C:\Users\familia\Documents\Visual Studio 2010\Projects\teste_directX\Debug\teste_directX.exe : fatal error LNK1120: 1 unresolved externals
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    esse erro é o mesmo antes e depois de mostrar a ele o diretório das libs e includes:

    Project Options:
    C\C++ -> general -> C:\Program Files\Microsoft DirectX SDK %28June 2010%29\Include

    Linker -> general -> C:\Program Files\Microsoft DirectX SDK %28June 2010%29\Lib\x86

    o código usado é o que vem de exemplo no code::blocks.

  • Anônimo
    avatar

    Agora ficou mais fácil.

    Acredito que você não tenha adicionado a biblioteca as opções do linker.

    Lembre-se, o processo é:
    * Dizer ao compilador C/C++ onde encontrar arquivos de include
    * Dizer ao linker onde encontrar os arquivos de biblioteca

    Esses dois passos, você faz uma única vez para o compilador todo

    Isso parece que você fez, mas faltou:
    * Dizer ao linker, quais bibliotecas incluir no projeto, que é algo que você faz para cada projeto.

    Que é o que comento bem no final do artigo com o link para: http://www.pontov.com.br/site/cpp/46-conceitos-b asicos/155-como-usar-bibliotecas-cc

  • Antonio
    avatar

    entendi, dando uma lida no artigo que me passou, mas o problema é que não acho as bibliotecas! no diretório Lib\x86 existem apenas arquivos objetos, fui em Linker -> Input -> Additional Dependencies e inclui d3d9.obj e ele gerou erro:
    C:\Program Files\Microsoft DirectX SDK (June 2010)\Developer Runtime\x86\d3d9d.dll : fatal error LNK1107: invalid or corrupt file: cannot read at 0x280

    depois eu achei no diretório Developer Runtime uma lista de dlls, mostrei ao linker o diretório delas e adcionei ao Linker -> Input-. Additional Dependencies: d3d9.dll ... e mais algumas, mas ele gera o mesmo erro, não encontrei mais nenhum bibliotecas além dessas.

  • Anônimo
    avatar

    Você tem que adicionar os arquivos Lib, aqui no meu computador existem 27 arquivos lib em: C:\Program Files\Microsoft DirectX SDK (June 2010)\Lib\x86

  • Ze Mau  - Excelente!
    avatar

    Bruno,
    você fez um belo artigo! O principal nele, que eu não havia visto
    em lugar nenhum (mas que dava para adivinhar tentando), foi
    a informação de que você precisa ter um projeto (qualquer) aberto
    para configurar o modo global de pesquisa de includes e bibliotecas.
    Parabéns!
    Zé Mau

  • Ze Mau
    avatar

    Bruno,
    parabéns pelo belo artigo! Você indicou o principal ponto para
    a configuração global (todos os projetos) de includes e libraries:
    "é preciso ter um projeto qualquer aberto". Essa observação, apesar
    de se descobrir tentando, não está escrita em lugar nenhum que eu
    tenha pesquisado.
    Abraço,
    Zé Mau

  • Anônimo
    avatar

    Pequenos macetes :)

    Obrigado!

  • Miqueias Viana da Costa  - Problemas
    avatar

    Fiz todo esse processo para a configuração da biblioteca chien2d porem ao fazer um teste com jogo pong e colocar pra compilar da um erro dizendo que a pasta pong não foi encontrada. Não sei exatamente se o problema e no visual studio 2010 ou na configuração da chien 2d

  • Anônimo
    avatar

    Qual a mensagem de erro do compilador?

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