Ver la versión completa : ¿Que librerias o archivos necesito instalar en cigwin para que poder compilar?
saitoh00
03/08/2009, 23:49
Bueno como no queria instalar linux por ahora(ya lo hare mas adelante) me instalé cigwin que es lo que usaba para programar en psp, sin embargo me encuentro que no se que librerias ni sdk he de descargar y os pido encarecidamente vuestra ayuda.
Echadme una mano muxaxos!!!
[wei5][wei5][wei5][wei5][wei5][wei5][wei5]
Si no quieres un IDE puedes usar el DevkitGP2X que ya todo configurado, incluido el MSYS y MinGW que es parecido al Cygwin. También tienes el Kit oficial de GP2X configurado para DevC++, y otro kit alternativo configurado para Code::Blocks. Todos ellos para Windows, aunque hay que cambiar dos archivos (http://www.gp32spain.com/foros/showthread.php?t=61359) para adaptarlo a la Wiz. Ya que por ahora no hay SDK de Wiz para Windows.
Todo esto está en la zona de descargas (http://www.gp32spain.com/foros/downloads.php?do=cat&id=40) de Gp2x y en el Gp2x archive (http://archive.gp2x.de/cgi-bin/cfiles.cgi).
P.D. Si no quieres hacer particiones, siempre puedes instalar Linux en una máquina virtual con VirtualBox (http://www.virtualbox.org/).
saitoh00
05/08/2009, 14:28
Muchísimas gracias hardyx, en serio he mirado por muchos sitios incluida la pagina de wiki.open2x.org pero me encontraba un poco perdido, ya que siempre que he programado me encontraba desde un principio con todas las herramientas preparadas desde un principio y solo me tenía que poner a codificar y punto, antes tenia un tutoria para cygwin con librerias de psp pero lo perdi por algun sitio y aunque imagino que la instalación del mismo es igual, la instalacion de cada librería podía diferir un poco.
De todos los que me has dicho, cuál me aconsejas para empezar?
Un saludo
El más fácil para empezar es el Kit oficial y caballero de GP2X.
cybernoid
05/08/2009, 16:21
El más fácil para empezar es el Kit oficial y caballero de GP2X.
pero con el Kit Oficial de gp2x no generas archivos ejecutables de Wiz no?
EDIT: ok, no he dicho nada ¬_¬!
saitoh00
05/08/2009, 16:34
Gracias hardyx,a la hora de hacer el cambio en las librerias para hacer la compilación dinamica para wiz tengo un par de dudillas ya que el archivo lo abro y me sale casi todo en Null y no se donde meter esos cambios, así que me gustaría poder hablar contigo a ser posible en tiempo real (irc, msn o lo que sea vamos) ya que hay cosas que hablando por los mensajes se tarda muchisimo mas tiempo en arreglar, bueno por un lado tengo esa duda, he descomprimido en C:\ el devkit de la gp2x y ahora me asalta la duda de como hago para compilar cualquier ejemplo que haya o si necesito tener algo mas instalado aparte del dekvit
Un saludo y muchas gracias por todo
P.D. Es una putada no poder mandar PM :(
Los archivos binarios simplemente renómbralos y crea uno nuevo de texto con los cambios.
El Devkit que viene con el Dev-C++ es un entorno integrado, lo abres, creas un proyecto, seleccionas PC o GP2X y compilas. Para pc te genera un .exe y para gp2x te genera un .gpe. Hay tutoriales (http://www.google.es/search?hl=es&q=dev+c%2B%2B+tutorial) en internet sobre este programa.
saitoh00
06/08/2009, 02:25
Muchas gracias por tu paciencia y por ayudarme con este tema, estoy deseando de ponerme a meterle un tute a esto, aprender distintas funciones de la consola y aportar mi trabajo a todos, igual que las alegrias que recibo por vuestra parte tanto en ayuda(soporte como el que me estas dando al responderme) como por los emuladores y appz que estais mejorando casi a diario.
Un saludo
saitoh00
06/08/2009, 14:22
Bueno ya he empezado con mi primer ejemplo para compilar en devc++, y asi aprender como funcionaría el cambio de librerías a gp2x a falta del sdk ke saldra en los próximos meses.
Después de tener casi todo perfecto para poder compilar y modificar el compilador y los 2 archivos de lib... me encuentro que al compilar me aparece este error...La configuración solamente he tocado lo que viene en la imagen, lo demás esta todo por defecto.
Subo el archivo con la captura, lo que no sabía es donde se modificaba eso de:
"And link WITHOUT the -static flag."
A ver si me pongo ya mismo con la programación y me quito de configurar el entorno de desarrollo que es un coñazo, más que nada por el poco tiempo que tengo para solucionar los problemas
Vaya, parece que el DevC++ tiene una versión de GCC que no soporta el procesador de la Wiz. Mejor no pongas las opciones -mcpu y -mtune, ya que este compilador ya está configurado para la familia de la GP2X, que es compatible.
Sobre lo de quitar el flag "-static" en tu proyecto no hace falta, ya que no lo tienes en las opciones del linker. Por defecto se enlazan las librerías en modo dinámico. Pero si usas alguna librería que no trae la consola, como SDL_gfx.so tienes que ponerla junto al ejecutable gpe.
Suerte.
saitoh00
08/08/2009, 05:00
Gracias de nuevo, ahora lo he intentado con el primer ejercicio del cuadrado ese de SDL, sin embargo en windows me funciona sin ningun problema despues de copiar SDL.dll a system y system32 dentro del sistema operativo.
Sin embargo intento compilar para gp2x y recibo el siguiente mensaje de error...
Compilador: gp2x
Building Makefile: "C:\Documents and Settings\**\Mis documentos\Makefile.gp2x"
Ejecutando make...
make.exe -f "C:\Documents and Settings\**\Mis documentos\Makefile.gp2x" all
cygwin-mkdir -p "gp2x"
g++.exe gp2x/sdl.o -o Proyecto13.gpe -L"C:/GP2XSDK/Tools/arm-gp2x-linux/lib" -lSDL_image -lSDL_mixer -lSDL_ttf -lSDL_inifile -lSDL -lpng -ljpeg -lvorbisidec -lmad -lfreetype -lz -lunicodefont
/gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/../../../../arm-gp2x-linux/bin/ld: cannot find /lib/libpthread.so.0
collect2: ld returned 1 exit status
make.exe: *** [Proyecto13.gpe] Error 1
Ejecución Terminada
sin embargo en las 2 posibles carpetas tanto en lib dentro de la "raiz" como en la lib donde debería haber modificado los 2 archivos libm.so y libpthread.so se encuentran dichos archivos y no encuentro motivo para que me diga que no los encuentra.
La forma de compilar que he puesto es la normal -DGP2X por defecto sin ningun tipo de link y no entiendo porque obtendo este error y no puedo compilar.
Noto que cada vez falta menos para que pueda compilar pero ***** se está haciendo durilla la cosa.
Un saludo
Las librerías para windows están en \Gp2xSdk\dlls y puedes copiarlas todas a \Windows\System32 o mejor añadir ese directorio al path del sistema (Panel de control > sistema > opciones avanzadas > variable de entorno).
Algo debes de tener mal en la configuración de los directorios de Gp2x o en los archivos para que no te encuentre la libpthread.so. Revisa los archivos y las opciones del compilador. Puedes restaurar las librerías originales y probar de nuevo, o reinstalar el entorno en un directorio diferente, sólo es extraer los archivos y ejecutar.
Te dejo una prueba de proyecto creado con el asistente de Dev-C++ por si quieres revisarlo o probarlo. Compila sin problemas con las librerías originales de GP2X. Eso si, para que funcione en la Wiz hay que ponerle algunas librerías que no trae, como la libmikmod y otras.
saitoh00
08/08/2009, 14:43
Gracias man ya compiló, por fin jejeje, ahora solo me falta aprender muchas funciones y ponerme en serio :D
Otra cosa no he tenido que instalar ninguna librería mas y el programa que me has enviado se supone que lo que hace es que pulsas el boton start (en este caso es el botón menu) y sale de la pantalla negra.
El codigo del programa sdl crea un cuadrado y no funciona ningun boton sin embargo aparece el cursor y se puede mover con la pantalla tactil pero el programa en sí no tiene salida, o al menos a mi no me sale de ahi si no apago la consola.
Habrá que fusionar los 2 programas para que cuando se pulse un botón se salga de ver el cuadrado, imagino que poniendo algo parecido a un system(pause).
Un saludo y muchas gracias
Fíjate en el código del programa que te he puesto en la función Terminate(). En la consola hay que llamar al menú antes de salir del programa, sino quedarías en el prompt de Linux y con la pantalla en negro. atexit() ejecuta la función que le digas al terminar.
saitoh00
10/08/2009, 16:35
Muchas gracias por tu ayuda, quería saber si existe algun miniprograma o algo por el estilo que permita activar la conexión al pc, ya que es un coñazo tener que andar enchufando y desenchufando el cable cada vez que quiero pasar un *.gpe y probarlo.
Un saludo.
Tienes que mirar el código que actualiza la variable done cuando se pulsa el botón START (MENU). Para que se ejecuta la función de atexit() tiene que llegar al return que termina el programa.
Sobre el cable, había algo en GP2X en el wiki, pero se trataba de cargar y descargar el driver de usb storage. Prueba todo lo que puedas en pc y luego después en la consola. Yo lo hago con un lector quitando y poniendo la tarjeta, no sé qué método será peor. :D
saitoh00
10/08/2009, 18:04
Jajaja es una putada eso de tener ke ir quitando y poniendo tarjetas xD. Tú metodo por un lado sufre menos el cable pero por otro la tarjeta y el lector sufren mas xD.
Lo ideal sería que tuviese algo implantado en el firm al estilo de activar desactivar usb igual que tiene el usb host.
Me voy al curro asi que después revisaré lo que me has dicho, gracias por centésima vez :P
Pensaba ke iba a ser más facil pasar de c a programar para la maquinita pero vamos con paciencia y saliva...se la metió el elefante a la hormiga :P.
Un saludo
PD: Intenté fusionar el programa de creación del cuadrado con el básico main que contiene el uso de los botones, sin embargo algo ocurre que no me da la salida al menú con el atexit(Terminate).
EDIT 12/08: Tuve ciertos problemas con la salida del programa, ya que siempre solía quedarse en la pantalla del cuadrado y no me reconocía la salida...El atexit lo hacia en el main principal fuera del último bucle y justo antes de la supuesta salida del programa (el ultimo return).
Lo cambié dentro del bucle de comprobación de la tecla y ahora todo funciona correctamente.
Sé que el código estaba hecho y en parte no he añadido nuevo pero de los errores que me han ido surgiendo me han enseñado algunos comportamientos que tendré en cuenta para un futuro :)
EDIT 13/08: Fui modificando varios de los programas aparecidos en el manual de SDL pero sin embargo en el último de los que he creado que se trata de mover un bmp por la pantalla con las pulsaciones de la cruceta tengo varias dudas:
1.-¿Se puede hacer lo mismo con otras funciones parecidas?
2.- Si existen se puede hacer para que al pulsar una dirección y dejarla pulsada se siga moviendo el bmp por la pantalla?(Algo asi como si dejas pulsada una tecla del teclado escribe una letra y sin dejar de pulsarlo vuelve a escribir más).
3.-Con la forma de ejecución que he escogido para recoger los datos y ejecutarlos podría hacer lo que quiero en la funcion pregunta 2?
Un saludo.
La función atexit() es como instalar una rutina de salida y se hace después de SDL_Init(), para que en el caso de fallar algo salga correctamente. Pero si eso te viene en el libro!!
1- atexit es un caso especial para ejecutar una función antes de salir.
2- Como te he dicho, se hace con las funciones SDL_JoystickUpdate(), SDL_JoystickGetButton().
3- Puedes hacerlo, pero tienes que cambiar un poco el código para usar las funciones de lectura directa.
saitoh00
19/08/2009, 12:35
Gracias por la explicación hardyx, te hice caso y cambie lo de atexit, también hice el método de las pulsaciones con SDL_JoystickUpdate(), sin embargo he tenido que reducir la imagen de lo rápido que se mueve por pantalla, aparte cuando se sale de la pantalla suele quedarse pillado el programa, no en el sentido de que se quede bloqueado, sino que si por ejemplo pulso hacia la izquierda y se sale de la pantalla la nave hasta que no se ve, no puedo recuperarla dandole a la derecha y he de pulsar Menu para salir.
Otra cosa es que no sé si uso bien la función SDL_JoystickUpdate(), porque aparentemente hace lo mismo que cuando no la pongo.
Un saludo
Veo que vas avanzando con la SDL.
Lo que te sucede del movivimiento tan rápido es porque tienes que limitar los frames por segundo según la velocidad. La forma fácil es hacer un SDL_Delay(100); por ejemplo después de dibujar todo. Esto hace una pausa de 100 milisegundos en cada frame. Puedes cambiar el valor para ajustarlo a la velocidad que quieras.
Lo mejor es controlar el tiempo con SDL_GetTicks(). Esto también hace que tu juego vaya a la misma velocidad de forma independiente de la velocidad de la cpu. En esta página (http://blackshell.usebox.net/archivo/755.php) se explica cómo hacerlo.
saitoh00
20/08/2009, 03:32
Bueno, intenté hacer los deberes de hoy sin embargo creo que algo no funciona del todo bien, ya que sigo viendo excesivamente rápida la nave, a ver si alguien le hecha un vistazo a ver que puede ser porque creo que lo de los 60 frames por segundo no va, seguro que hago mal algo pero le he echado horas y no veo el que puede ser, aparte vi varios ejemplos de gente en algunos foros pero practicamente lo tenian igual que yo.
Adjunto mi codigo fuente para ver que puede ser....
Un saludo
He mirado el código (no te acostumbres mucho, je, je) y he visto algunas cosas:
- Si usas SDL_JoystickGetButton() ya no hace falta usar SDL_PollEvent(), son dos métodos distintos de leer el teclado.
- Estás chequeando los ticks transcurridos para hacer el SDL_Flip(), pero estás pintando y actualizando las coordenadas del sprite en todo momento. Por eso se te va de la pantalla cuando se pinta. Tienes que meter la lectura de Joystick y todo el pintado (BlitSurface) dentro del if de control de frames.
- SDL_JoystickUpdate() se suele usar antes de preguntar los botones, aunque puede funcionar así como está.
Suerte, ya lo tienes casi controlado.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.