Wenas a ver si alguien me puede ayudar estoy haciendo unos tutoriales de opengl para posteriormente intentar hacer algun juego sencillo. Para ello utilizo el editor dev-c pero ya me desanima porque en mi primer tutorial (creacion de una ventana con opengl) ya me da un error y no se k passa e provado el mismo codigo en visual c y si va (os estareis preguntando pues, pk no lo haces en Vc? pues pk en el ordenador k tengo instalado este programa es muy viejo y intento instalar el vc en el nuevo pc pero los cd estan dañados o los archivos aunke son nuevos solo los utilice una vez hace mucho tiempo, por eso me baje este editor gratuito el dev-c. Os pongo el tuto y el error haber si me lo sabeis solucionar, creo k es pk no tengo el editor bien configurado o las librerias o algo asi.
#include "gl/glut.h"
void Renderescena(void);
void SetupRC(void);
main(void)
{
//Para establecer el modo del bufer. El bufer es donde se guardan los comandos de dibujo en este caso al ser simple
//todos estos comandos se ejecutan en el dibujo de la ventana.
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
//Crea la ventana y pone como titulo de esta simple.
glutCreateWindow("Simple");
//llama a la funcion que se encarga del borrado de pantalla o del bufer para ser mas exactos.
//Bufer es una zona de almacenamiento de datos de la imagen. Los componentes de colo o de dibujo se conocen como:
//bufer de color o bufer de pixeles.
glutDisplayFunc(Renderescena);
//esta funcion realiza cualquier inicializacion que deberiamos hacer de opengl antes de la presentacion.
SetupRC();
//Inicia la ejecucion de la estructura principal de la libreria blut y libera todas la s funciones de llamada y a glut.
glutMainLoop();
}
void Renderescena(void)
{
//Esta funcion borra un bufer determinado o conjunto de estos.
//En opengl encontramos varios tipos de bufer (color, profundidad, plantillas y acumulacion)
//En este caso borramos el bufer de color que es donde se encuentra la imagen guardada internamente y con esta funcion
//borramos el ultimo dibujo de la ventana.
glClear(GL_COLOR_BUFFER_BIT);
//ejecuta todos los comandos de opengl que no se hayan ejecutado ya.
glFlush();
}
void SetupRC(void)
{
//Establece el color de borrado de la pantalla(pero no la borra), en este caso ventana.
//los parametros son rojo,verde,azul,alpha son de tipos float.
glClearColor(0.0f,0.0f,1.0f,1.0f);
}
Ese es el errroooorrrr!!!!
me marca la libreria osea la primera linia del codigo y dice lo siguiente:
Compilador: Default compiler
Ejecutando g++.exe...
g++.exe "C:\Documents and Settings\Administrador\Mis documentos\tutoriales opnegl\tuto1.cpp" -o "C:\Documents and Settings\Administrador\Mis documentos\tutoriales opnegl\tuto1.exe" -ansi -traditional-cpp -w -fexceptions -pg -g3 -fmessage-length=0 -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" -lgmon -pg -lobjc -g3 -fmessage-length=0
In file included from C:\Documents and Settings\Administrador\Mis documentos\tutoriales opnegl\tuto1.cpp:1:
C:/Dev-Cpp/include/gl/glut.h:43: error: redeclaration of C++ built-in type `short'
Ejecución Terminada
Tambien canvie alguna configuracion del editor pero el error persiste canvia algo por eso.
Compilador: Default compiler
Ejecutando g++.exe...
g++.exe "C:\Documents and Settings\Administrador\Mis documentos\tutoriales opnegl\tuto1.cpp" -o "C:\Documents and Settings\Administrador\Mis documentos\tutoriales opnegl\tuto1.exe" -fexceptions -pg -g3 -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" -lgmon -pg -lobjc -g3
In file included from C:\Documents and Settings\Administrador\Mis documentos\tutoriales opnegl\tuto1.cpp:1:
C:/Dev-Cpp/include/gl/glut.h:43: error: redeclaration of C++ built-in type `short'
Ejecución Terminada
NO se es k me desanimo nada mas empezar haber si alguien sabe ayudarme.
Prueba a usar uno de los devpacks q hay para dev-c:
http://www.nigels.com/glt/devpak/http://devpaks.org/Lo mas posible es q tengas un glut antiguo sin soporte de mingw
gracias pero me temo k ahora tengo otro problema me dice lo siguiente de error
Compilador: Default compiler
Ejecutando g++.exe...
g++.exe "C:\Documents and Settings\Administrador\Mis documentos\tutoriales opnegl\tuto1.cpp" -o "C:\Documents and Settings\Administrador\Mis documentos\tutoriales opnegl\tuto1.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\DOCUME~1\ADMINI~1\CONFIG~1\Temp/cceubaaa.o(.text+0xe):tuto1.cpp: undefined reference to `glClear@4'
C:\DOCUME~1\ADMINI~1\CONFIG~1\Temp/cceubaaa.o(.text+0x16):tuto1.cpp: undefined reference to `glFlush@0'
C:\DOCUME~1\ADMINI~1\CONFIG~1\Temp/cceubaaa.o(.text+0x46):tuto1.cpp: undefined reference to `glClearColor@16'
C:\DOCUME~1\ADMINI~1\CONFIG~1\Temp/cceubaaa.o(.text+0x82):tuto1.cpp: undefined reference to `glutInitDisplayMode'
C:\DOCUME~1\ADMINI~1\CONFIG~1\Temp/cceubaaa.o(.text+0x8e):tuto1.cpp: undefined reference to `glutCreateWindow'
C:\DOCUME~1\ADMINI~1\CONFIG~1\Temp/cceubaaa.o(.text+0x9a):tuto1.cpp: undefined reference to `glutDisplayFunc'
C:\DOCUME~1\ADMINI~1\CONFIG~1\Temp/cceubaaa.o(.text+0xa4):tuto1.cpp: undefined reference to `glutMainLoop'
collect2: ld returned 1 exit status
Ejecución Terminada
La version resumida de este error es esta:
[linker error] undefined reference to `glClear@4'
[linker error]undefined reference to `glFlush@0'
[linker error]undefined reference to `glClearColor@16'
[linker error]undefined reference to `glutInitDisplayMode'
[linker error]undefined reference to `glutCreateWindow'
[linker error]undefined reference to `glutDisplayFunc'
[linker error]undefined reference to `glutMainLoop'
Es k soy un desastre.
Le has indicado al linker q te enlace con glut y opengl? pq me parece q no.
Tienes linkadas las librerias correspondientes en las opciones del proyecto?
vale lo acabo de linkar ahora dice esto.
cannot find -lobjc
k pesao k soy jejejejej perdonad pero esto de ser principiante en programacion grafica jo creo k si me fuera del todo bien el pc viejo pues lo aria alli pk este mismo tutorial lo ice en ese con vc y iva bien solo tube k grabar las librerias correspondientes y listo pero con el pc viejo esta a punto de petar no me puedo fiar y en este otro si tuviera los cd bien pues ya hubiera grabado el visual estudio pa no tener problemas pero es k yo soy monoaplicacion me cuesta muchisimo adequarme a otro entorno de desarrollo.
Perdonad las molestias.
no esta mal no estan linkados joer como se hace eso es k e entrado en una opcion de editor k ponia linkar programa en c objetivo y pensaba k era eso por eso la e activado pero si lo hago me sale ese mensaje.
Objective C es un lenguaje diferente de C++ ó C, no se pq lo activas si no estas usandolo.
ya ya por eso lo he desactivado es k no lo conocia ese lenguaje pero como linkeo los archivos. Jejejeje mejor k es linkar pk me parece k tengo un concepto erroneo de esto y despues como linkeo los archivos con el dev-c
En dev c++ tenias que ir a las opciones de proyecto (proyect->settings o algo así así) y buscar la pestaña links, ahí te saldrá una lista de librerias escritas por defecto, tienes que añadir "opengl32.lib" y "glut32.lib" (escribiendola junto a las otras) y aceptar, ya estarán linkadas.
Por supuesto, esas librerias tienen que estar en la carpeta lib del compilador.
Un saludo
Gracias esto ya esta jejejejejeje porfin veo la ventana k ice jejejejejejejeje ahora a por las formas y los viewports eso jejejejejejejejejejejeje