OpenGL en tu GNU/Linux
Por trabajos en los estudios me veo metido en la programación con OpenGL y por tanto con GLUT. En la universidad tan solo me dieron el GLUT para Microsoft Windows y eso, me pareció mal más que nada, porque si hay posibilidad de utilizar Free Software se debe aprovechar por encima que la propietaria. Por ello, hoy explicare como instalar las dependencias de GLUT para utilizar OpenGL sin problemas en tu GNU/Linux.
Primero que nada hay que tener un compilador de C, los más conocidos son gcc, g++, g77 y make. Esto no es problema ya que con aptitude o apt-get se instala fácilmente.
sudo apt-get install gcc g++ g77 make
De este modo tendremos todos los compiladores.
Una vez instalado el compilador pasamos a instalar las dependencias para OpenGL y por tanto de GLUT. Para ello instalaremos las dependencias freeglut3, freeglut3-dbg y freeglut3-dev. En principio con freeglut3-dev habría bastante. Para ello
sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev
Ya tenemos instaladas las dependencias y por tanto GLUT y OpenGL.
Fuente: nemediano.wordpress.com
Filed under: GNU/Linux, tutorial, ubuntu | 14 Comments
Tags: dependencias, GLUT, GNU/Linux, instalar, OpenGl

Bueno, gracias que me ha servido tu información.
hola.
Estyo empesando a programar en linux… Yo estuoy programando en C++ y utilizo g++ como compilador me entiendes ??? ahora mis ddas son:
1.- Es necesario instalar los demas aparte de g++ (gcc g77 make ) para que mi programa hecho en OpenGL corra y funcione??
2.- No se como utilizar la libreria OpenGL. Y seria de mucha ayuda un manual para linux ya q solo encuentro para Windows.
3.- He leido del ALLERGO para ubuntu/linux pero encuentro su manual y es para windows por ejemplo.
4.- Algun ejemplo del uso de la libreria como llamarla, sintaxis, etcetera; y cual es la mejor libreria grafica y mas facil de usar…
Desde ya muchas gracias…
Hola Aprendiendo xD
te recomiendo que los instales todos, te ahorraras dolores de cabeza y te aseguras de que funciona. En teoría con g++ deberías tener bastante supongo pero ya te digo, pesan poco y te quitas dolores de cabeza.
Las librerías OpenGL funcionan igual bajo Microsoft Windows como en GNU/Linux. Son las mismas, tanto las funciones como las librerías. Solo cambia que debes quitar las librerías externas a OpenGL que son exclusivas para Microsoft Windows. Si no utilizas, el programa el 100% portable.
ALLEGO es API de OpenGL, como lo es GLUT. También tienes SDL del cual hay bastante información y es multiplataforma y 100% portable. Si no me equivoco ALLEGO también será 100% portable como SDL o GLUT, solo debes ir con cuidado si utilizas librerías que son para Microsoft Windows externas a OpenGL.
ALLEGO yo no lo he tocado, ni lo he visto, así que no te puedo decir mucho. De SDL hay material libre por internet, no es difícil de encontrar. Busca “programación con SDL” y te saldrá mucho material. Si prefieres GLUT la mayoría esta en ingles, bueno, de GLUT como de los otros, aunque de SDL hay bastante en castellano para empezar.
El ejemplo de que lo quieres? de ALLEGO?
Ah, por cierto, donde digo que ahí instalar opengl, estas instalando GLUT pero como en sus dependencias tiene OpenGL, se instala este también. Esto solo es porque yo necesitaba GLUT y así tampoco me complicaba la vida.
Espero haberte ayudado.
Saludos!
se agradece el aporte me sirvio mucho
Hola,¿ me puedes indicar qué bibliotecas tengo que ligar al momento de compilar el programa con gcc o g++ y podrías decirme si puedo compilar programas que utilicen la biblioteca openglut? Gracias
Hace tiempo que no toco esto. Si no me equivoco para compilar un programa hecho con openglut (GLUT) hay que linkear -lglut al compilar.
saludos
hola…
mi pregunta es ke repositorios tengo ke agregar porke estoy usando mandriva 2008
y no me baja las dependencias…
usro “urpmi” pero no encuentra los paquetes…
si pudieras poner las dependencias te lo agradeceria…
saludos..
Hola agustin,
siento la confusión, no entendí tu pregunta. Siguiendo la fuente de donde saque para instalar GLUT y OpenGL pone la siguientes dependencias:
freeglut3 freeglut3-dbg freeglut3-dev ftgl-dev gle-doc glut-doc glutg3 glutg3-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa libgl1-mesa-dev libgl1-mesa-dri libglut3 libglut3-dev mesa-common-dev mesa-demos mesa-swrast-source mesa-utils
Espero que te sea de ayuda.
Repositorios no tengo ni idea, lo siento.
hola, buen dato, me ha servido mucho.
Tengo un problema con la librería glaux, como la cargo?
Buena, este es el primero de muchos tutoria que encuentro y sirve!!!!!!!!!!!
Gracias Viejo!!!
Hola!
yo pude instalar las librerias sin nungún problema, pero cada vez que intento compilar alguno de los demos que descargué me manda errores como este:
gerardo@gerardo-laptop:~/Escritorio$ gcc accum.c
/tmp/ccYPRg6C.o: In function `Init’:
accum.c:(.text+0×11): undefined reference to `glClearColor’
accum.c:(.text+0×22): undefined reference to `glClearAccum’
accum.c:(.text+0×2c): undefined reference to `glGenLists’
accum.c:(.text+0×44): undefined reference to `glNewList’
accum.c:(.text+0×57): undefined reference to `glColor3f’
accum.c:(.text+0×77): undefined reference to `glRectf’
accum.c:(.text+0×7c): undefined reference to `glEndList’
accum.c:(.text+0×86): undefined reference to `glGenLists’
accum.c:(.text+0×9e): undefined reference to `glNewList’
accum.c:(.text+0xb1): undefined reference to `glColor3f’
accum.c:(.text+0xd1): undefined reference to `glRectf’
accum.c:(.text+0xd6): undefined reference to `glEndList’
/tmp/ccYPRg6C.o: In function `Reshape’:
accum.c:(.text+0xfb): undefined reference to `glViewport’
accum.c:(.text+0×105): undefined reference to `glMatrixMode’
accum.c:(.text+0×10a): undefined reference to `glLoadIdentity’
accum.c:(.text+0×114): undefined reference to `glMatrixMode’
accum.c:(.text+0×119): undefined reference to `glLoadIdentity’
/tmp/ccYPRg6C.o: In function `Key’:
accum.c:(.text+0×157): undefined reference to `glPolygonMode’
accum.c:(.text+0×15c): undefined reference to `glutPostRedisplay’
accum.c:(.text+0×16d): undefined reference to `glPolygonMode’
accum.c:(.text+0×172): undefined reference to `glutPostRedisplay’
/tmp/ccYPRg6C.o: In function `Draw’:
accum.c:(.text+0×189): undefined reference to `glPushMatrix’
accum.c:(.text+0×1a6): undefined reference to `glScalef’
accum.c:(.text+0×1b0): undefined reference to `glClear’
accum.c:(.text+0×1bd): undefined reference to `glCallList’
accum.c:(.text+0×1cf): undefined reference to `glAccum’
accum.c:(.text+0×1d9): undefined reference to `glClear’
accum.c:(.text+0×1e6): undefined reference to `glCallList’
accum.c:(.text+0×1f8): undefined reference to `glAccum’
accum.c:(.text+0×20a): undefined reference to `glAccum’
accum.c:(.text+0×20f): undefined reference to `glPopMatrix’
accum.c:(.text+0×21e): undefined reference to `glutSwapBuffers’
accum.c:(.text+0×225): undefined reference to `glFlush’
/tmp/ccYPRg6C.o: In function `main’:
accum.c:(.text+0×2c5): undefined reference to `glutInit’
accum.c:(.text+0×300): undefined reference to `glutInitDisplayMode’
accum.c:(.text+0×30f): undefined reference to `glutInitWindowSize’
accum.c:(.text+0×319): undefined reference to `glutCreateWindow’
accum.c:(.text+0×328): undefined reference to `glutReshapeFunc’
accum.c:(.text+0×332): undefined reference to `glutKeyboardFunc’
accum.c:(.text+0×33c): undefined reference to `glutDisplayFunc’
accum.c:(.text+0×341): undefined reference to `glutMainLoop’
collect2: ld devolvió el estado de salida 1
Espero me puedan orientar. De antemano gracias
Hola zidane,
el problema que tienes es que no linkeas las librerías de opengl a la hora de compilar y por eso no las encuentra.
Para compilar
gcc miprograma.c -o miprograma -lglut
-lglut porque utilizas glut
mírate el orden y opciones y además te recomiendo que aprendas a utilizar los makefile. En caso de que no te aclares utiliza Eclipse y configuralo para que lo haga él, yo lo hacía así
salu2
Gracias!!!XD