Ir ao conteúdo
  • Cadastre-se

OpenGL no Code::Blocks


Programadora Principiante

Posts recomendados

Olá pessoal, como estão?

 

Estou iniciando um curso de designer gráfico e a pedido do meu professor instalei as bibliotecas da OpenGL no meu code::blocks. Coloquei os arquivos .h (gl.h, glu.h, glut.h), .dll e .lib nos diretórios corretos e testei com main.cpp que é gerado sempre que se cria um novo projeto no code::blocks. Tudo certo. Infelizmente, quando fui compilar um exemplo simples recebi os seguintes erros:

 

C:\Users\Fernanda\Desktop\Exemplo 1.o:Exemplo 1.cpp:(.text+0x48): undefined reference to `_imp__glClearColor'
C:\Users\Fernanda\Desktop\Exemplo 1.o:Exemplo 1.cpp:(.text+0x82): undefined reference to `glutInitDisplayMode'
C:\Users\Fernanda\Desktop\Exemplo 1.o:Exemplo 1.cpp:(.text+0x8e): undefined reference to `glutCreateWindow'
C:\Users\Fernanda\Desktop\Exemplo 1.o:Exemplo 1.cpp:(.text+0x9a): undefined reference to `glutDisplayFunc'
C:\Users\Fernanda\Desktop\Exemplo 1.o:Exemplo 1.cpp:(.text+0xa4): undefined reference to `glutMainLoop'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 10 second(s))
7 error(s), 0 warning(s) (0 minute(s), 10 second(s))
 
Eis o programa que testei:
 
#include <gl/glut.h>// Função callback chamada para fazer o desenhovoid Desenha(void){//Limpa a janela de visualização com a cor de fundo especificadaglClear(GL_COLOR_BUFFER_BIT);//Executa os comandos OpenGLglFlush();}// Inicializa parâmetros de renderingvoid Inicializa (void){    // Define a cor de fundo da janela de visualização como preta    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);}// Programa Principalint main(void){glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);glutCreateWindow("Primeiro Programa");glutDisplayFunc(Desenha);Inicializa();glutMainLoop();}
Se puderem, me ajudem. Esse problema é recorrente no uso da OpenGl, mas não consegui achar uma solução em tutoriais.
Link para o comentário
Compartilhar em outros sites

@Programadora Principiante

 

 

As bibliotecas não foram especificadas ao linker e, consequentemente, referências a essas funções ficaram indefinidas.

 

 

Primeiro verifique se você tem a biblioteca GLUT instalada. Veja se você encontra arquivos *glut*.a no diretório bin do seu MinGW. Se não tiver, vai precisar instalar a GLUT. Procure por pacotes FreeGLUT para MinGW.

 

 

Feito isso, você vai precisar especificar as bibliotecas usadas ao linker. No Code::Blocks, isso deve ficar nas opções do projeto no item "Linker settings". Em "Other linker options", você especifica -lfreeglut -lopengl32

 

 

 

NW

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...