Ir ao conteúdo
  • Cadastre-se

C++ como usar graphics.h no CodeBlocks?


Cambalinho
Ir à solução Resolvido por Cambalinho,

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • Solução

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
Link para o comentário
Compartilhar em outros sites

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!