Ir ao conteúdo

C++ como usar graphics.h no CodeBlocks?


Ir à solução Resolvido por Cambalinho,

Posts recomendados

Postado

eu uso o CodeBlocks para programar C\C++.

queria usar o Graphics.h. eu baixei 2 ficheiros headers e a libraria... mas podem não ser os compativeis.

adicionei a libraria e este comandos\opções do linker:

"-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32"

mas, ao compilar, obtenho 1 erro: "ld.exe||cannot find -lbgi|"

porque este erro? como o corrigir? será da compatibilidade da libraria?

  • Curtir 1
Postado
18 horas atrás, Cambalinho disse:

porque este erro?

 

O linker utilizado pelo Code::Blocks, ou seja ld.exe, não foi capaz de encontrar a biblioteca libbgi no sistema e, portanto, não consegue montar o executável. Ele procurou em alguns lugares predefinidos (onde normalmente as bibliotecas ficam armazenadas) e noutros especificados por você.

 

18 horas atrás, Cambalinho disse:

como o corrigir?

 

Você poderia fornecer o endereço da biblioteca pro linker utilizando a flag -L, p/ex.:

 

-L[PATH] -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32

 

Onde [PATH] seria o endereço pro diretório no qual a biblioteca vive (um arquivo .a ou .so ou .dll etc).

 

Ou você poderia procurar na documentação do Code::Blocks onde ele prefere guardar as bibliotecas e, então, copiar a libbgi pra esse local. Nunca usei Code::Blocks, portanto não posso ajudar muito nessa parte.

  • Curtir 2
Postado

Bom, o primeiro detalhe é notar que você não está providenciando o endereço do local onde a biblioteca vive mas o endereço da biblioteca propriamente dita (ou seja, do arquivo). O linker poderia tentar procurar no diretório ..\libbgi.a e, obviamente, não encontrar nenhum arquivo libbgi.a ali. O endereço deveria terminar em ..\lib a não ser que seja uma notação própria do Code::Blocks.

 

O segundo detalhe é o fato de que você está tentando utilizar uma biblioteca estática. São essas com extensão .a. Você pode simplesmente utilizar o endereço completo do arquivo (não do local) na flag -l, p/ex.:
 

-l[PATH]\libbgi.a -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32

 

Lembre-se que a ordem das bibliotecas importa. Salvo enganos, as que dependam da libbgi.a devem estar posicionadas a direita dela na linha de comando.

 

6 horas atrás, Cambalinho disse:

mas acredito que não devo ter a libraria correcta...

 

Você só pode concluir isso depois de linkar a libbgi.a corretamente e obter o próximo erro. Até o momento você não usou a biblioteca.

  • Curtir 1
Postado
3 horas atrás, Cambalinho disse:

why CodeBlocks can't  find the file if there on that folder?

 

Explicado anteriormente.

 

56 minutos atrás, Cambalinho disse:

qual são as suas flags nas opções do compilador?

 

Se eu quero linkar uma biblioteca chamada libfoo.a localizada no endereço /home/mylibs, eu usaria:

 

-L/home/mylibs -lfoo
  • Curtir 1
  • Solução
Postado

finalmente consegui resolver, mas notei alguns erros nos links\tutorials e no youtube:
1 - a libraria é para o CodeBlocks 32 bits, o 64 dá esse erro!!!!;

2 - a libraria\headers são na pasta(baixei o CodeBlocks 32 bits com o compilador mingw 32 bits: 

"C:\Program Files (x86)\CodeBlocks\MinGW\i686-w64-mingw32\include"

e

"C:\Program Files (x86)\CodeBlocks\MinGW\i686-w64-mingw32\lib" 

e não na:

"C:\Program Files (x86)\CodeBlocks\MinGW\lib"

e não na:

"C:\Program Files (x86)\CodeBlocks\MinGW\include"

demorei imenso reparar nisto tudo 😞

muito obrigado por tudo amigo.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!