PDA

Ver la versión completa : Ayuda Sobre Configuracion Devcpp vs SDL



kjulagp
24/12/2005, 21:29
Estoy intentando configurar el Devcpp para que tire con las SDL y que compile para GP2x, pero aun siguiendo tutoriales sigo sin compilar.

miq01
24/12/2005, 22:13
Por lo que veo, el archivo que intentas compilar es C++ y no C (o, al menos, tiene extensión CPP). Así que lo que creo que pasa es que no has añadido correctamente los includes para C++, vistas estas líneas de tu Makefile:

INCS = -I"C:/Dev-Cpp/include"
CXXINCS = -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"
SDL.h está en C:/Dev-Cpp/include, pero fíjate que en CXXINCS (los includes para C++) no está ese directorio. Añade los includes de C también en los de C++. Creo que te funcionará.

Edito: De hecho, como include sólo deberías añadir C:/Dev-Cpp/include.

Gaijin
24/12/2005, 22:18
Igual si que los has añadido bien pero se te ha olvidado decirle al programa que quieres compilar para la gp2x y no para lo que viene por defecto:
Project Options-->Compiler-->Y selecciona el nombre que le hayas puesto

kjulagp
24/12/2005, 22:38
He copiado las SDL a la carpeta include del dev-cpp y ahora ya no me da ese error ahora tengo este :

[Linker Error] undefines references to 'Winmain@16'
id returned 1 exit status
[build error] [hello.exe] error1

kjulagp
24/12/2005, 23:18
Esto me esta tomando el pelo, ahora por arte de magia mi makefile se ha convertido en :

# Project: Proyecto1
# Makefile created by Dev-C++ 4.9.9.2

CPP = arm-linux-g++.exe
CC = arm-linux-gcc.exe
WINDRES = windres.exe
RES =
OBJ = hello.o $(RES)
LINKOBJ = hello.o $(RES)
LIBS = -L"C:/devkitGP2X/lib" -lSDLmain -lSDL
INCS = -I"C:/devkitGP2X/include"
CXXINCS = -I"C:/devkitGP2X/include" -I"C:/devkitGP2X/lib/gcc/arm-linux/4.0.2/include" -I"C:/devkitGP2X/include/c++/4.0.2/backward" -I"C:/devkitGP2X/include/c++/4.0.2/arm-linux" -I"C:/devkitGP2X/include/c++/4.0.2"
BIN = hello.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)
RM = rm -f

.PHONY: all all-before all-after clean clean-custom

all: all-before hello.exe all-after


clean: clean-custom
${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o "hello.exe" $(LIBS)

hello.o: hello.cpp
$(CPP) -c hello.cpp -o hello.o $(CXXFLAGS)

Ahora parece que coge bien el compilador, pero Ahora tengo este error:

C:\pruebas gp2x\hello\hello.o In function `main':
[Linker error] undefined reference to `SDL_Init'
[Linker error] undefined reference to `SDL_SetVideoMode'
[Linker error] undefined reference to `SDL_Flip'
C:\pruebas gp2x\hello\Makefile.win [Build Error] [hello.exe] Error 1

Cuadno lo solucione os invito a algo :abeber:

Edito : He añadido al linker -lSDL_Init -lSDL_SetVideoMode -lSDL_Flip, ahora solo tengo el error
cannot find -lSDL_Init
C:\pruebas gp2x\hello\Makefile.win [Build Error] [hello.exe] Error 1

Myquael
24/12/2005, 23:36
Y cuando nos invites a algo tendras en mente el solucionar lo mismo pero para -lSDL_SetVideoMode ...
Prueba a poner simplemente -lSDL

miq01
24/12/2005, 23:43
He copiado las SDL a la carpeta include del dev-cpp y ahora ya no me da ese error ahora tengo este :
Cuidado, que si quieres desarrollar en para Windows (o Linux) y GP2X has de tener dos SDLs diferentes, una para cada sistema. Vaya, que si tenías las SDL en el directorio include de Dev-C++ y las has sobreescrito con las de GP2X ahora no podrás compilar para Windows. Yo creo que lo mejor que podrías hacer es mantener las SDL en el directorio del DevKit.


[Linker Error] undefines references to 'Winmain@16'
id returned 1 exit status
[build error] [hello.exe] error1
Creo que es porque has de añadir libSDLmain.a al enlazar.


Edito : He añadido al linker -lSDL_Init -lSDL_SetVideoMode -lSDL_Flip, ahora solo tengo el error
cannot find -lSDL_Init
¿Librerías SDL_Init? ¿SDL_SetVideoMode? ¿SDL_Flip? ¡Pero si todo eso son funciones que están incluídas en libSDL! Por supuesto que sólo te da un error. Para en el primero y no sigue buscando. SDL_Init no es ninguna librería, y por lo tanto, no la encontrará. Has de añadir -lSDL. Si te da error es por otro motivo.

kjulagp
24/12/2005, 23:44
Hombre una birrita a la solucion final sino noveas que caro saldrian todos los fallos :llorosa:

Nada si pongo solo lSDL me da el error de antes :shock: , que falta lSDL_Init lSDL_video.....

Vaya rollo, no se podria hacer un pack autoconfigurado y makefile extandar??

De momento con solucionar esto seria perfecto.

Wild[Kyo]
25/12/2005, 01:25
Yo para compilar para Windows en el Linker tengo esto:

-lmingw32 -lSDLmain -lSDL

Para GP2X uso Makefiles. Por otra parte, no te animas a usar mejor el devkitGP2X y dejarte de devcpp? En cualquier caso ánimo ^^

kjulagp
25/12/2005, 02:28
Uso el DevKitGp2X.

Instale el Devcpp luego:

1º Descomprimi el Devkitgp2x en C:\devkitgp2x
2º Copie las gp2xlibs en los directorios de devkitgp2x
3º He configurado las rutas
4º Le pasado al linkador que use -lSDL -SLDmain

Y no compila. Creo que me doy por vencido.

Cuando hace el makefile me sale esto:

# Project: Proyecto1
# Makefile created by Dev-C++ 4.9.9.2

CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
RES =
OBJ = main.o $(RES)
LINKOBJ = main.o $(RES)
LIBS = -L"C:/devkitGP2X/lib" -lmingw32 -lSDLmain -lSDL
INCS = -I"C:/devkitGP2X/include"
CXXINCS = -I"C:/devkitGP2X/lib/gcc/arm-linux/4.0.2/include" -I"C:/devkitGP2X/include" -I"C:/devkitGP2X/include/c++/4.0.2/backward" -I"C:/devkitGP2X/include/c++/4.0.2/arm-linux" -I"C:/devkitGP2X/include/c++/4.0.2"
BIN = Proyecto1.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)
RM = rm -f

.PHONY: all all-before all-after clean clean-custom

all: all-before Proyecto1.exe all-after


clean: clean-custom
${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o "Proyecto1.exe" $(LIBS)

main.o: main.cpp
$(CPP) -c main.cpp -o main.o $(CXXFLAGS)

Y a partir de aki los errores, bueno Feliz Navidad a Todos.

daesir
31/12/2005, 22:49
Bueno, yo de momento te puedo ayudar a compilar SDL para windows, luego para la gp2x será un pasito más :rolleyes:

Yo no me bajé las librerías a pelo, no puse a mano nigún .h en ningún sitio, no hice ná XDD.

Lo que sí que hice fue (empezando "desde cero"):
Instalar el dev-c++
Herramientas->buscar actualizaciones; selecciono "devpacks.org: community devpacks" y pulso check for updates.
Ahora de la lista de paquetes escojo los siguientes (los tres últimos por ser dependencias):
SDL, SDL_image, SDL_mixer, libjpeg, libpng, Zlib.

Para probar los ejemplos que voy leyendo: creo un nuevo proyecto de tipo "Multimedia, SDL".
Quito todo lo que hay en el main.c por defecto que te crea el programa, y pongo el ejemplo en cuestión. Y todo compila y ejecuta perfectamente (repito: de momento sólo he probado ejemplos de algunos tutoriales de SDL).

Al escoger un proyecto de tipo "SDL", el programa te incluye automáticamente las opciones del linker "-lmingw32 -lSDLmain -lSDL" en las propiedades del proyecto. Si además quiero usar las posibilidades de SDL_mixer y SDL_image, de momento estoy añadiéndolo a mano: "-lSDL_image -lSDL_mixer".

Supongo que para hacer un .gpe compatible con gp2x y no un .exe, habría que cambiar las opciones del compilador (En herramientas -> opciones del compilador, puedes crear un nuevo "esquema de compilación", donde configurar el make, gcc, etc para tu nuevo entorno (la gp2x), y los paths al devkitgp2x).

Y nada más, espero que te funcione :)

JimmySlam
01/05/2006, 23:10
al final como arreglastes el problema de compilar con el dev cpp?

a mi me pone: unable to run program file.

FoxPro
19/09/2007, 05:20
yo soy nuevo en esto de sdl, yo suelo programar en vb60, pero ahora quiero me terme en a programar juegos en c++, pero instale esta IDE y las librerias SDL i me paso que la primera vez q compile me resulto, andaba todo bien pero luego se puso a crear una especie de cache de las librerias y de ahi en adelente no me compila mas y ya no se que hacer...