Ver la versión completa : Iniciarse en el Desarrollo de aplicaciones para GP2X
Hola a los expertos que espero puedan contestarme.
Yo de momento no estoy interesado en la programacion de juegos para la gp2x, en cambio si me gustaria iniciarme con la programacion de aplicaciones.
Y la verdad que no se muy bien como empezar.
Por lo que he ido viendo por la pagina http://wiki.gp2x.org
Lo primero que necesesito en un Entorno de desarrollo. Veo que recomiendan el open2x.
Asi que pa lante con ello.
1)
lo que hize fue instalar el toolchain del open2x, en mi caso instale esta version:
If you have glibc 2.4 (or higher) on your system, download: http://www.open2x.org/open2x/toolchains/arm-open2x-linux-apps-gcc-4.1.1-glibc-2.3.6_i686_linux.tar.bz2.zip
2)
Luego como bien dice el wiki procedi a instalar la biblioteca:
http://www.open2x.org/open2x/toolchains/open2x-libpack-20071903-gcc-4.1.1-glibc-2.3.6.tar.bz2.zip
la verdad que no se muy bien lo que es esta biblioteca, no se si es una biblioteca especial para el Linux de la Gp2x o si es una biblioteca libre que sirver para el Linux del PC, o si es una biblioteca Grafica.
Una vez isntalada la biblioteca, esperaba el tipico ejemplo facil facil de como compilar algun programa facil, pero nada de nada.
Asi que ahora aqui me encuentro con mi entorno supuestamente montado, y sin saber continuar.
Espero que pueda salir para delante. y si es asi a dios pongo por testigo que contare mi experiencia a todos los que la necesite.
Gracias.
Y hasta aqui he llegado.
Ahora quisiera saber como utiliar todo esto que acabo de instalar, y la verdad no se muy bien como usarlo.
Muchas gracias, solo necesito que me orienteis un poco.
esosiqueno
13/10/2007, 21:13
Hola,
Lo que ahora tienes que hacer es empezar.
Pilla una fuente de aquí:
http://www.gp32spain.com/foros/downloads.php?do=cat&id=41
y la compilas con el make que tenga esa fuente,
cambiando las direcciones del original por las que tengas instalado tu entorno.
Mira este hilo, te será de ayuda:
http://www.gp32spain.com/foros/showthread.php?t=24955
O bien te curras algo en un IDE; aquí tienes un par de tutoriales de un compañero forero:
http://david.dantoine.org/contenido/9/
http://david.dantoine.org/contenido/10/
También échale un ojo a estas secciones del wiki:
http://wiki.gp32spain.com/index.php/Programaci%C3%B3n_para_GP2X:_primeros_pasos
http://wiki.gp32spain.com/index.php/FAQ_de_programaci%C3%B3n
http://wiki.gp32spain.com/index.php/FAQ_de_SDL
http://wiki.gp32spain.com/index.php/Tutoriales_de_programaci%C3%B3n
http://wiki.gp32spain.com/index.php/Recursos_para_Programadores
Y al wiki del entorno Open2x:
http://wiki.open2x.org/open2x/wiki/index.php?title=Main_Page
Resumiendo un poco...
Saludos
Otra opcion es el sencillo y potente fenix; mas info en el subforo de fenix.
Muchas gracias ,pero por lo que he podido ver de todos los links son para programacion de videojuegos(cosa que no descarto en un futuro)
Pero ahora lo que queria es programar aplicaciones tipo visor de imagenes, agendas, aplicaciones de consola, etc...
¿No había algún kit completo para programar sobre la consola? Me parece que en descargas hay algo de eso.
loixartx
14/10/2007, 16:50
para windows está el SDK listo para usar con DevC++
yo es que soy mas de linux
Puck2099
15/10/2007, 00:11
Muchas gracias ,pero por lo que he podido ver de todos los links son para programacion de videojuegos(cosa que no descarto en un futuro)
Pero ahora lo que queria es programar aplicaciones tipo visor de imagenes, agendas, aplicaciones de consola, etc...
Pero a la hora de programar es igual...
¿Qué más da que sea un juego o una aplicación? No sé si me explico, pero los conceptos son los mismos en ambos casos, solo que en uno por ejemplo mueves un muñeco y en otro un cursor.
La verdad es que tienes razon.
Yo lo queria saber si es totalmente necesario usar la libreria grafica SDL, o por el contrario existen otras librerias para el desarrollo de aplicaciones normales.
Como no me expreso muy bien os pongo un ejemplo
Tu para linux puedes programar para la consola(sin interface grafica)
Tambien puedes programar para que se vean ventanicas y todas esas cosas
O te puede dar por hacer un juego con SDL.
Pues lo que yo queria saber como se pueden programar aplicaciones modo consola y modo Grafico(no videojuegos) para la GP2X
yo es que soy mas de linux
Eres de linux y de C?
Lo que necesitas es una plataforma entera de cross-compiling para GP2X. Es decir, un gcc que te genere binarios para ARM-LINUX.
Yo por ejemplo lo tengo instalado en /usr/local/gp2xdev/, y cuando quiero compilar es algo tal que:
:$ /usr/local/gp2xdev/bin/arm-linux-gcc codigo01.c codigo02.c ... codigoNN.c -L /usr/local/gp2xdev/lib -I /usr/local/gp2xdev/include -lLIB01 -lLIB02 ... -lLIB03 -O2 -static -o ejecutable.gpe
< - >
Pues lo que yo queria saber como se pueden programar aplicaciones modo consola y modo Grafico(no videojuegos) para la GP2X SI que prodrias, pero solo podrias usarlas con Term, o conectandote a la GP2X con telnet, no tendria ningun interface grafico.
Puck2099
15/10/2007, 00:36
La verdad es que tienes razon.
Yo lo queria saber si es totalmente necesario usar la libreria grafica SDL, o por el contrario existen otras librerias para el desarrollo de aplicaciones normales.
Como no me expreso muy bien os pongo un ejemplo
Bájate de www.altmagazine.net el número 2 que hay un artículo mio sobre prácticamente todos los modos de programación para la GP2X y así te haces una idea :)
Tu para linux puedes programar para la consola(sin interface grafica)
Tambien puedes programar para que se vean ventanicas y todas esas cosas
O te puede dar por hacer un juego con SDL.
Pues lo que yo queria saber como se pueden programar aplicaciones modo consola y modo Grafico(no videojuegos) para la GP2X
Pues si quieres una aplicación en modo terminal es igual que para tu Linux, pero usando el compilador cruzado, en SDL hay pequeñas diferencias y si quieres hacerlo gráficamente y directamente al framebuffer usa las minilib que están muy bien :)
Saludos
Muchas gracias, con toda esta informacion creo que tendre suficiente. ahora solo falta ponerse con ello. Ya os contare.
Para programar aplicaciones en modo consola:
1.- prográmalas como normalmente lo harías en tu Linux, y compílalas con el toolchain que ya tienes
2.- Busca sterm en las descargas de esta página. Es una consola para tu Gp2x.
3.- Mete tus programas en la Gp2x.
4.- Ejecuta Sterm y sigue como si estuvieras en una shell de tu ordenador (de hecho, *es* Bash)
^MiSaTo^
15/10/2007, 18:45
Bájate de www.altmagazine.com el número 2 que hay un artículo mio sobre prácticamente todos los modos de programación para la GP2X y así te haces una idea :)
Pues si quieres una aplicación en modo terminal es igual que para tu Linux, pero usando el compilador cruzado, en SDL hay pequeñas diferencias y si quieres hacerlo gráficamente y directamente al framebuffer usa las minilib que están muy bien :)
Saludos
Anda queee ... encima que haces SPAM de tu artículo pones mal el enlace xDDD
es www.altmagazine.NET
Puck2099
15/10/2007, 19:08
Anda queee ... encima que haces SPAM de tu artículo pones mal el enlace xDDD
es www.altmagazine.NET
Juas, es verdad, es que lo escribí deprisa y corriendo mientras me ponía el pijama y después de tirarme toda la tarde estudiando :D
Muchas gracias, con toda esta informacion creo que tendre suficiente. ahora solo falta ponerse con ello. Ya os contare.
De nada. ;) Si tienes alguna duda más ya sabes en que hilo postear.
D_Skywalk
16/10/2007, 16:37
Personalmente te recomiendo que pruebes los tutos de kdevelop, de verdad es un lujo usarlo, a mi me ha facilitado mucho la vida ;)
Un Saludo y si tienes dudas por aquí estamos! :D
Propeller
16/10/2007, 17:02
Anda queee ... encima que haces SPAM de tu artículo pones mal el enlace xDDD
es www.altmagazine.NET
Tu enlace también está mal, ya que lleva a
www.altmagazine.NET
La dirección de verdad es www.altmagazine.net :p
Boludos, más que boludos [wei]
Propeller
No preocuparse que fui capaz de averiguar la pagina.
Ya me decidi!!!, y usare SDL para desarrollar un visor de imagenes para la Gp2X-f100
Como ya tengo bajado y descomprimido el toolchain de "open2x", pues supongo que ya lo tengo todo,no?
Ahora quiero compilar el tipico sdltest.c
Para ello uso:
/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin/arm-open2x-linux-gcc-4.1.1 /ruta/sdltext.c -I /... -L /... ...
El problema que tengo es que no se que rutas ponerle al arm-open2x.linux-gcc-4.1.1 en las opciones -I y -L, porque la verdad es que tengo varios directorios /lib e /include dentro del entorno de desarrollo de open2x.
Gracias
Puck2099
31/10/2007, 18:21
Ahora me tengo que ir al gimnasio, pero si no te han contestado cuando vuelva te explico como hacerlo, pues tengo ese toolchain (entre otros) instalado ;)
Saludos
Ya me decidi!!!, y usare SDL para desarrollar un visor de imagenes para la Gp2X-f100
Como ya tengo bajado y descomprimido el toolchain de "open2x", pues supongo que ya lo tengo todo,no?
Ahora quiero compilar el tipico sdltest.c
Para ello uso:
/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin/arm-open2x-linux-gcc-4.1.1 /ruta/sdltext.c -I /... -L /... ...
El problema que tengo es que no se que rutas ponerle al arm-open2x.linux-gcc-4.1.1 en las opciones -I y -L, porque la verdad es que tengo varios directorios /lib e /include dentro del entorno de desarrollo de open2x.
Gracias
Puedes poner varios -I y -L con varias rutas de librerias e includes, añade todas las includes y libs que veas, que seguramente CREO que son 2. La cuestion es que compile y funcione, ves probando.
CREO que debes meter en tu caso:
" -I/opt/open2x/include -I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include -L/opt/open2x/lib -L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib"
Puck2099
31/10/2007, 22:08
A ver, ya estoy aquí.
Si lo has descomprimido por ejemplo en /opt tendrás un /opt/open2x/gcc-4.1.1-glibc-2.3.6/lib y /opt/open2x/gcc-4.1.1-glibc-2.3.6/include pues esos son los que tienes que meter.
De todos modos, asegúrate de haber bajado el paquete de bibliotecas que creo que iba aparte de la toolchain.
Saludos
Mañana lo pruebo a ver si funciona.
Gracias
La duda surgia porque a parte de /opt/open2x/gcc-4.1.1-glibc-2.3.6/lib y /opt/open2x/gcc-4.1.1-glibc-2.3.6/include tengo tambien /opt/open2x/gcc-4.1.1-glibc-2.3.6/arm-open2x-linux/lib y /opt/open2x/gcc-4.1.1-glibc-2.3.6/arm-open2x-linux/include.
Y la verdad no sabia que usar y que diferencias habia entre ambas
Muchas gracias
Una preguntilla, la Gp2x tiene máquina virtual de java? Supongo que si no tiene, no funcionarán los programas escritos en java...
Puck2099
01/11/2007, 12:06
Una preguntilla, la Gp2x tiene máquina virtual de java? Supongo que si no tiene, no funcionarán los programas escritos en java...
Sí tiene, aunque creo que estaba bastante limitada...
Bueno por fin compile y probe el la gp2x un ejemplo que encontre en wiki.gp2x.org
No me di cuenta y tenia el toolchain para el libc superior al 2.3, y yo tengo el 2.3.6, asi que instale el que necesitaba para mi version de libc, y estas fueron las rutas que puse para lib e include
jorge@tibccc:/opt/open2x$ ./gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-gcc /home/.../.../sdl.c -I ./gcc-4.1.1-glibc-2.3.6/include/SDL -L ./gcc-4.1.1-glibc-2.3.6/lib -lSDL -o test.gpe
Muchas gracias por todo
Aqui vuelvo.
Ahora me llego intentando mostrar una imagen en la pantalla de la consola.
Para ello uso la biblioteca SDL_image.
A la hora de compilar, añado un -lSDL_image al gcc. pero me empieza a decir
./gcc-4.1.1-glibc-2.3.6/lib/libSDL_image.so: undefined reference to `png_destroy_read_struct@PNG12_0'
./gcc-4.1.1-glibc-2.3.6/lib/libSDL_image.so: undefined reference to `png_read_update_info@PNG12_0'
.
.
.
.
.
.
por que ?
Puck2099
07/11/2007, 01:06
Añade un -lpng detrás.
Es más. Eso te mostrara una preciosa pantalla negra en tu GP2X. Metele un -static y ya veras la de librerias que te faltan por enlazar.
El problema es que no tengo por aqui ningun makefile donde mirar las librerias necesarias a enlazar usando SDL y haciendolo static. Prueba de momento con estas, aunque seguramente te falten:
-lpng12 -lz -lpthread -lm
Puese todos los -l que encontre jaja, y la verdad es que me salen unas 20 bibliotecas sin enlazar, es una maravilla, tendre que mirar un tutorial para hacer makes o algo asi.
Si sabeis de alguno...
Estoy intentando hacer un make para compilar un sencillo programa que solo hace uso de include SDL.h
Este es el makefile en cuestion
CROSS_COMPILE = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-ligcc
CC= $(CROSS_COMPILE)
CFLAGS = -I /opt/open2x/gcc-4.1.1-glibc-2.3.6/include/SDL
LDFLAGS = -static -L /opt/open2x/gcc-4.1.1-glibc-2.3.6/lib -lSDL
%.o: %.c
$(CC) $(CFLAGS) -c $<
sdltest.gpe: sdltest.o
$(CC) -o sdltest.gpe sdltest.o $(LDFLAGS)
sdltest.o: sdltest.c $(CFLAGS)
$(CC) -c sdltest.c
clean:
rm sdltest.o
Pero cuando intento hacer make, me sale en siguiente mensaje
make: *** No hay ninguna regla para construir el objetivo `-I', necesario para `sdltest.o'. Alto.
Sabeis alguno porque es?
Puck2099
11/11/2007, 22:40
Esto está mal:
CROSS_COMPILE = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-ligcc
¿No sería algo así?:
CROSS_COMPILE = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-gcc
Efectivamente me faltaba nux, la verdad que me cuesta pensar como he podido borrar solo nux, y no el resto de la frase, pero bueno, una vez corregido eso, me sigue dando el mismo error
Tambien esta mal esto:
CFLAGS = -I /opt/open2x/gcc-4.1.1-glibc-2.3.6/include/SDL
LDFLAGS = -static -L /opt/open2x/gcc-4.1.1-glibc-2.3.6/lib -lSDL
El -I ha de ir pegado a la ruta de include (sin espacio intermedio), lo mismo con el -L...
Esto seria correcto:
CFLAGS = -I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include/SDL
LDFLAGS = -static -L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib -lSDL
y luego, hay un programilla llamado "sdl-config" que si lo ejecutas con los siguientes comandos:
/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin/sdl-config --cflags <--- La salida de esto iría en CFLAGS
/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin/sdl-config --libs <--- La salida de esto iría en LDFLAGS
debería escupirte unos parametros que le has de pasar al compilador para que funcione con SDL.
Muchas gracias a todos, la verdad es que todo lo que pregunto lo intento mirar antes por internet, pero ya sabeis que hay veces que te lias y solo encuentras la misma info una y otra vez. La verdad es que me estais ayudando mucho.
Gracias
Voy a probar esto ultimo que comenta Bud
Muchas gracias a todos, la verdad es que todo lo que pregunto lo intento mirar antes por internet, pero ya sabeis que hay veces que te lias y solo encuentras la misma info una y otra vez. La verdad es que me estais alludando mucho.
Gracias
Voy a probar esto ultimo que comenta Bud
Oh shit! That hurt me!
EAT MY FIST! (O ò_ó)=O)º oº)~
xD. Es froma, solo es que me ha parecido un poco hoygan. :D:D Ya me contarás si al final te funciona todo. ;)
Alludando, ¿Donde pone eso?
Todabia no me funciona, me sigue dando el mismo error
Perdona, me parecio verlo. :D
Veamos, ea aquí un Makefile de mi merced.
AS = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-as
CC = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-gcc
CXX = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-g++
STRIP = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-strip
CFLAGS = -O2 -static -L/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/lib/ -I/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/include/ -I/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/include/libpng12
CXXFLAGS = -O2 -static -L/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/lib/ -I/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/include/ -I/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/include/libpng12
LIBS = -lpng12 -lz -lpthread -lm -lSDL -I/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/include/libpng12 -L/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/lib/ -I/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/include/ -static -O2
TARGET = sdltest.gpe
OBJS = sdltest.o
all : $(TARGET)
$(TARGET) : $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LIBS)
$(STRIP) $(TARGET)
clean:
rm -f $(OBJS)
Es curioso, porque en mi pc al instalar el open2x , las cabeceras y librerias me las copiaba en
/opt/open2x/gcc-4.1.1-glibc-2.3.6/include/SDL
y en respectivamente
L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib
Y el compilador cruzado me lo pone en
/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-gcc
Pero veo que en tu caso lo tienes todo en
/opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/
¿eso es logico?
lo digo porque he modificado el makefile que pusistes para adaptarlo a donde yo tengo las cosas, me kedo esto
AS = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-as
CC = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-gcc
CXX = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-g++
STRIP = /opt/open2x/gcc-3.4.4-glibc-2.3.6/arm-open2x-linux/bin/arm-open2x-linux-strip
CFLAGS = -O2 -static -L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/ -I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include/ \
-I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include/libpng12
CXXFLAGS = -O2 -static -L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/ -I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include/ \
-I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include/libpng12
LIBS = -lpng12 -lz -lpthread -lm -lSDL -I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include/libpng12 \
-L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib -I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include/ -static -O2
TARGET = sdltest.gpe
OBJS = sdltest.o
all : $(TARGET)
$(TARGET) : $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LIBS)
$(STRIP) $(TARGET)
clean:
rm -f $(OBJS)
y me da este error
makefile:20: *** falta un separador. Alto.
la linea 20 es esta
$(CC) -o $(TARGET) $(OBJS) $(LIBS)
esto del make es un gran culo,no?
Los make son lo mejor que hay para proyectos grandes, sino si que seria un buen grano en el culo. Prueba de quitarle el strip, que total solo te hará el ejecutable final más pequeño y mira si te tira.
Me figuro que el si sabes utilizarlo, sera muy comodo, pero es que llevo tiempo intentando quwe me compile una sencilla aplicacion con la cual no tuve ningun problema al compilarla directamente en consola, pero en cuanto intente hacer un make para la misma, eso empezo a dar errores, y aqui sigo liado.
En esa línea 20 que da el error, al principio ¿que hay, espacios o un tabulador? Puede que ese sea el fallo
< - >
Yo dependiendo del proyecto uso o Makefiles personalizados o las autotools. Gracias a dios que kdevelop me administra más o menos las autotools, porque son un infierno de aprender.
Los Makefiles lo uso para proyectos que van a funcionar en múltiples plataformas como consolas de videojuegos. Ahí es muy complicado configurar las autotools. Éstas las utilizo para cuando sólo voy a compilar para linux y windows (pero desde linux, con mingw)
Efectivamente y si, tienes razon efegea, eran los puñeteros tabulardores,mira que mire todos los tab anteriores, pero de esos pase totalmente.
Molto grache
Bueno, hace mucho que no posteo por falta de tiempo.
Cuando empeze este post, pretendia iniciarme en el desarrollo con SDL para la Gp2x,
pero me va a ser imposible debido a temas academicos.
Doy gracias a todos los que me habeis ayudado con las dudas.
Espero retomar este proyecto algun dia.
Nos vemos en el foro
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.