Ayuda con C++ y OpenGL

Josekron

Hola buenas, hace un par de días que empecé a familiarizarme con la librería opengl y aún no he conseguido ejecutar ni un simple programa. Utilizo el compilador Dev-C++ y la librería la saqué de estelink. Está correctamente instalada con el Package Manager de Dev-C++ y en la carpeta #include aparece la librería.

Ejemplo de uno de los muchos códigos simples (sacados de un manual) que he probado:

#include <GL/openglut.h>
#include <stdlib.h>

void display()
{
     glClear(GL_COLOR_BUFFER_BIT);
     
glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); glFlush(); } int main (int argc, char** argv) { glutInit(&argc,argv); glutCreateWindow("simple"); glutDisplayFunc(display); glutMainLoop(); }

Y el error que da es:

  [Linker error] undefined reference to `glClear@4' 
  [Linker error] undefined reference to `glBegin@4' 
  [Linker error] undefined reference to `glVertex2f@8' 
  [Linker error] undefined reference to `glVertex2f@8' 
  [Linker error] undefined reference to `glVertex2f@8' 
  [Linker error] undefined reference to `glVertex2f@8' 
  [Linker error] undefined reference to `glEnd@0' 
  [Linker error] undefined reference to `glFlush@0' 
  [Linker error] undefined reference to `_imp__glutInit@8' 
  [Linker error] undefined reference to `_imp__glutCreateWindow@4' 
  [Linker error] undefined reference to `_imp__glutDisplayFunc@4' 
  [Linker error] undefined reference to `_imp__glutMainLoop@0' 
  ld returned 1 exit status 

¿Alguien sabe donde puede estar el problema?

Edit: he probado tanto la librería openglut como glut del link y siempre el mismo o parecido error.

LOc0

Hola. A parte de los header (los .h) tienes que "linkar" las librerías necesarias. Te pongo la mítica http://nehe.gamedev.net/ donde encontrarás un curso de OpenGL dividido por lecciones. Cada lección incluye el código explicado en formato para muuuuuuuchos entornos incluído Dev-Cpp

Por ejemplo, http://nehe.gamedev.net/data/lessons/devc/lesson01.zip

Salu2 ;)

dr_Rouman

Esto me suena haberlo contestado antes, pero no estoy seguro.

Si has instalado el paquete del Dev-c++ en Nuevo > Proyecto > Multimedia debería salirte "glut"

Borra el código plantilla que te mete y hazlo ahí, yo no he tenido nada de problemas

Releyendo veo que usas openglut, deberías investigar cuales son las opciones que necesita para linkar, te dejo aquí las del glut normal:

-lglut32 -lglu32 -lopengl32 -lwinmm -lgdi32

Se pone en Proyecto > opciones de proyecto > parámetros, en el apartado parámetros del linker

B

Ay ama xD, dependemos ya tanto de los IDEs, que nos hemos olvidado de como hacer un make a pelo :P , la respuesta esta en #3.

Josekron

#3 gracias, es como dices: Nuevo > Proyecto > Multimedia > GLUT

#2 Esta bastante bien el manual pero estoy siguiendo el libro "OpenGL: a primer" de Edward Angel que aunque está en inglés, es bastante fácil de seguir. Además como ayuda suplementaria tengo el tochaco rojo (la guia oficial).

Usuarios habituales