Ver la versión completa : Ayuda Sobre Configuracion Devcpp vs SDL
Estoy intentando configurar el Devcpp para que tire con las SDL y que compile para GP2x, pero aun siguiendo tutoriales sigo sin compilar.
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.
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
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
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
Y cuando nos invites a algo tendras en mente el solucionar lo mismo pero para -lSDL_SetVideoMode ...
Prueba a poner simplemente -lSDL
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.
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 ^^
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.
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.
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...
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.