Ver la versión completa : Ayuda con Linux para SDK
Buenos días,
hasta ahora estaba progrmando con el SDK oficial en Windows, pero me interesaría poder programar en el portatil, en el cual tengo instalado Ubuntu. He estado buscando información y he encontrado bastante, pero me he quedado trabado en un punto, estaba siguiendo esta magnifica explicación de D_Skywalk (gracias ;) ).
El tema es que no quiero programar con Kdevelopment si no con codeblocks, me he bajado e instalado el codeblocks, pero no tengo muy claro como crear un proyecto para GP2X.
Alguien me puede inspirar un poco? Sip, soy bastante nulo en el uso de Linux y cuando lo usaba era Red hat 6, así que os podéis hacer una idea. :D He compilado algo con GCC directamente, pero no sé como linkar las SDL del toolchain de Uncanny que es el que me he bajado.
Ante todo muchas gracias y perdonad las molestias.
Un saludo.
Primero sugeriría definir una variable de entorno con la ruta en la que tengas instalado el toolchain. Eso se puede hacer editando el fichero .bashrc que tendrás en tu cuenta y añadiendo algo similar a lo siguiente:
export GP2XDEV="/opt/uncanny/gp2xdev"
Después de esto te será posible usar $GP2XDEV para referirte a la ruta. Para compilar enlazando con SDL, tienes que utilizar una línea de comandos parecida a ésta:
$GP2XDEV/bin/gp2x-gcc fichero.c -o fichero_salida -I$GP2XDEV/include -L$GP2XDEV/lib -lsdl -static
Con -I (i mayúscula) le indicas a gcc en qué ruta debe buscar los ficheros de cabecera y con -L la ruta donde tiene que buscar las librerías. Cualquier librería adicional se puede incluir con -l (ele minúscula) en el ejemplo que te puse, SDL.
Con -static estamos enlazando de forma estática, es decir, añadiendo el código de las librerías al ejecutable. Esto hace que el ejecutable crezca de tamaño, pero así nos ahorramos el tener que distribuir las librerías de enlace dinámico para la GP2X.
Muchas gracias Jcom, pero lo que estoy intentando es crear una plantilla en codeblocks en la cual estén linkadas las librerías. Ya he visto como hacerlo, pero de nuevo más dudas. :D
El problema es que a la hora de linkar las librerías tengo una con extensión .a y otra con extensión.so.
No estoy muy puesto en tema de librerías dinámicas y estáticas, entiendo que la .so es dinámica, por lo que creo que debería linkar las .a, pero no estoy seguro, a ver si consigo investigar un poco más. :D
Muchas gracias y un saludo.
Tienes, que perdonarme, había entendido que querías compilar sin usar ningún entorno. No conozco codeblocks, así que ahí no puedo ayudarte.
En cuanto a las librerías estás en lo cierto, las "*.so" son las dinámicas y las "*.a" las estáticas. Por lo menos al usar -l (ele minúscula) con gcc no tienes que especificar la extensión, se usan unas u otras automáticamente según añadas "-static" o no en la línea de comandos.
Perfecto, entonces lo único que tengo que hacer es crear el template con las librerías, ¿que es mejor para la GP2X? ¿estáticas o dinámicas?
Si no me equivoco el sdk oficial compila con las librerías estáticas, pero supongo que al venir la GP2x con las librerías sería mejor dinámicas, no?
Muchas gracias por las molestias que te estas tomando jcom, te debo unas :brindis:. ;)
Usando el SDK oficial se podría usar compilación dinámica sin problemas, creo yo. Otra cosa es si usas Open2X u otro SDK con librerías que no se incluyen de serie en la GP2X, que para evitar el engorro de tener que distribuir esas librerías no te queda otra solución que usar compilación estática.
Parece que la mayoría de la gente usa compilación estática.
Usando el SDK oficial se podría usar compilación dinámica sin problemas, creo yo. Otra cosa es si usas Open2X u otro SDK con librerías que no se incluyen de serie en la GP2X, que para evitar el engorro de tener que distribuir esas librerías no te queda otra solución que usar compilación estática.
Parece que la mayoría de la gente usa compilación estática.
Perfecto, pues nada a ver si puedo y pruebo un poco, porque tiene buena pinta el codeblocks, ya me he creado el template. ;)
Gracias y un saludo.
Pues nop, no consigo compilar. :D
He hecho el linkado de las librerías, pero al hacer el include no las encontraba.
Al final he sustituido el include por esto:
#include </home/paco/Desktop/Proyectos Programación/SDK/Linux/gp2xdev/lib/libSDL.a>
con esto no se queja de que no encuentra la librería, pero se llena todo de errores dentro de la librería y no funciona nada.
Ejemplo:
Compiling: main.cpp
In file included from /home/paco/Desktop/Proyectos Programaci\u00f3n/Proyectos/Prueba/main.cpp:9:
/home/paco/Desktop/Proyectos Programaci\u00f3n/SDK/Linux/gp2xdev/lib/libSDL.a:2: error: \u2018`\u2019 par\u00e1sito en el programa
En el archivo inclu\u00eddo de /home/paco/Desktop/Proyectos Programaci\u00f3n/Proyectos/Prueba/main.cpp:9:
/home/paco/Desktop/Proyectos Programaci\u00f3n/SDK/Linux/gp2xdev/lib/libSDL.a:3:1: aviso: caracter(es) nulo(s) descartados
/home/paco/Desktop/Proyectos Programaci\u00f3n/SDK/Linux/gp2xdev/lib/libSDL.a:3: error: \u2018\1\u2019 par\u00e1sito en el programa
Alguien me echa una mano? Como véis no tengo ni idea de configuración de entorno. Además tengo una duda, cuando tengo un archivo .h puedo ver el contenido para comprobar las funciones a usar, pero con los .a no puedo editarlo. ¿A qué se debe esto?
Muchas gracias y un saludo.
Bueno, después de leer varios foros, posts, etc... he llegado a la siguiente situación, no sé si buena o mala, a alguien le suena? :D
No se porque no se ve la imagen, así que la adjunto directamente. :D
Gracias y un saludo.
Pero buen hombre, ¿qué haces incluyendo las .a? Los .h (ascii) son los archivos que cuentan qué es lo que una .a/.so tiene (binario), y esos .h son los que tienes que incluir en tus programas .c/.cpp (ascii) para compilarlos. Una vez compilados en .o (binario) es cuando linkas a los .a/.so (binario)
Parece que tu problema es que no usas bien las opciones -I del compilador (para poner la ruta a las cabeceras .h) y -L del linkador (para poner la ruta a las librerías .a)
Es decir, para compilar tu archivo necesitas poner:
En maincpp: #include <SDL.h>
En el compilador: $(GP2XDEV)/gcc -o main.o -I$(GP2XDEV)/include main.cpp
En el linkador: $(GP2XDEV)/ld -static -o miprograma.gpe -L$(GP2XDEV)/lib main.o -lSDL -lm -lpthread
Échale un vistazo al hilo que acaba de publicar programatta http://www.gp32spain.com/foros/showthread.php?t=60206
Puck2099
08/12/2008, 22:37
Yo por mi parte te recomiendo enlazar con las bibliotecas dinámicamente para que también sea compatible con la Wiz ;)
Puck, se te olvidó comentar que si decide compilar dinámicamente, simplemente tiene que quitar el -static de las opciones del linkador, y el resto es igual.
Yo al principio reomendaba compilar estáticamente, pero vista la opinión de Puck y los éxitos que ha tenido con la compilación dinámica, casi que es preferible para mantener la compatibilidad aunque probablemente pierdas un poco de velocidad porque los coreanos son así :)
Puck2099
09/12/2008, 00:51
Puck, se te olvidó comentar que si decide compilar dinámicamente, simplemente tiene que quitar el -static de las opciones del linkador, y el resto es igual.
Sí, asumí que ya lo sabría, pero no está de más recordarlo :)
Yo al principio reomendaba compilar estáticamente, pero vista la opinión de Puck y los éxitos que ha tenido con la compilación dinámica, casi que es preferible para mantener la compatibilidad aunque probablemente pierdas un poco de velocidad porque los coreanos son así :)
Hombre, pierde velocidad porque no están aceleradas, pero por otro lado también te aseguras de que si cambian de firmware no te vaya mal la aplicación como nos ha pasado tantas veces...
Hombre, pierde velocidad porque no están aceleradas
¿Y qué les costaría acelerarlas? En la comparación que hicieron en gp32x (http://www.gp32x.com/board/index.php?showtopic=45583&hl=) hace unos días la Wiz no sale muy bien parada precisamente por eso: casi el triple de frecuencia que la Gp2x, pero solo una mejora del 50% en el rendimiento.
Esperemos que la falta de aceleración solo sea porque son versiones beta de las librerías...
Buenas, si es que como decía al principio soy un poco muñón, pero no veo en ningún sitio los .h.
Os explico, he bajado las librerías de Uncanny, las he descomprimido y lo que tengo son los ficheros .a y .so, he estado mirando en varios sitios y en alguno vi que llamaban directamente al .a, por eso he probado así y parece que al menos encuentra las funciones, porque de eso no se quejaba.
Estas librerías las tiene la Wiz? (Sip, ya he encargado mi Wiz, porque tengo pensado hacer algo con ella) he elegido la estática por ese motivo.
Voy a ver si localizo en algún sitio los ficheros de cabecera, es que la verdad es que esto de experimentar sólo da dolores de cabeza. Hasta ahora usaba el SDK oficial para Windows y como eso es instalar y ya está, pues no tenía tantos problemas. :P Pero como comenté en el portatil tengo Linux y podría instalar las SDL normales o el SDK original, pero quería experimentar un poco con las librerías de Payren. :D
A ver si esta tarde sigo probando un poquitlo. :D
Muchas gracias a todos por la ayuda.
Un saludo.
Buenas, si es que como decía al principio soy un poco muñón, pero no veo en ningún sitio los .h. (...) Pero como comenté en el portatil tengo Linux y podría instalar las SDL normales o el SDK original, pero quería experimentar un poco con las librerías de Payren. :D
Me suena que Payren solo distribuyó el binario de sus librerías y no incluyen cabeceras, porque son simplemente la versión acelerada de las SDL normales. No son un SDK completo, y deberás instalarlas sobre un SDK. Para Linux te recomiendo Open2x (http://wiki.open2x.org/open2x/wiki/index.php?title=Toolchain) (son dos descargas separadas, el toolchain de aplicaciones y las librerías) Y en ese SDK, si quieres, pones las librerías de Payren.
Me suena que Payren solo distribuyó el binario de sus librerías y no incluyen cabeceras, porque son simplemente la versión acelerada de las SDL normales. No son un SDK completo, y deberás instalarlas sobre un SDK. Para Linux te recomiendo Open2x (http://wiki.open2x.org/open2x/wiki/index.php?title=Toolchain) (son dos descargas separadas, el toolchain de aplicaciones y las librerías) Y en ese SDK, si quieres, pones las librerías de Payren.
Ahhh, ok, pues entonces ya sé donde está el problema... Creo que me he liado yo solito, luego pruebo para ver si funciona lo que pienso.
Es que se me ha metido en la cabeza usar codeblocks como si fuese el SDK que tengo con el DEVC++ en güindows, así que antes de nada voy a probar esto, si no recurriré a lo que me indicas. ;)
Muchas gracias por tu ayuda. ;)
Puck2099
09/12/2008, 19:44
Me suena que Payren solo distribuyó el binario de sus librerías y no incluyen cabeceras, porque son simplemente la versión acelerada de las SDL normales. No son un SDK completo, y deberás instalarlas sobre un SDK. Para Linux te recomiendo Open2x (http://wiki.open2x.org/open2x/wiki/index.php?title=Toolchain) (son dos descargas separadas, el toolchain de aplicaciones y las librerías) Y en ese SDK, si quieres, pones las librerías de Payren.
Sí hay cabeceras, pues las SDL de Paeryn tienen funciones específicas para la GP2X que no incorpora el SDL estandar.
< - >
¿Y qué les costaría acelerarlas? En la comparación que hicieron en gp32x (http://www.gp32x.com/board/index.php?showtopic=45583&hl=) hace unos días la Wiz no sale muy bien parada precisamente por eso: casi el triple de frecuencia que la Gp2x, pero solo una mejora del 50% en el rendimiento.
Esperemos que la falta de aceleración solo sea porque son versiones beta de las librerías...
¿Pero la comparativa es con las SDL de la GP2X de Paeryn o las de GPH? Lo digo porque las de GPH no están aceleradas.
Bueno, por hoy me rindo con la investigación que mañana toca currar.
Al final me he metido en las opciones de proyecto de codeblocks y he puesto que use un Makefile propio, he cogido uno del foro (gracias joan88):
TOOLCHAIN = /home/el_mio/gp2xdev
CROSS_COMPILE = $(TOOLCHAIN)/bin/arm-linux-
SDL_BASE = $(TOOLCHAIN)/bin/arm-linux-
LDFLAGS = -static
CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
STRIP = $(CROSS_COMPILE)strip
CFLAGS = -I$(TOOLCHAIN)/include/SDL -O2 -Wall
CXXFLAGS = -I$(TOOLCHAIN)/include/SDL -DTARGET_GP2X -O2 -Wall
LIBS = -L $(TOOLCHAIN)/lib -lSDL -lz -lm -lpthread
TARGET = world.gpe
OBJS = world.o
ALL_TARGETS = $(TARGET)
all: $(ALL_TARGETS)
$(TARGET): $(OBJS)
$(CC) $(LDFLAGS) -o $(TARGET) $(OBJS) $(LIBS)
$(STRIP) $(TARGET)
clean:
rm -f $(ALL_TARGETS) *.o
Pero el codeblocks sigue emperrado en ponerme las cosas dificiles. :D
Ahora me escupe esto:
<<
make: *** No hay ninguna regla para construir el objetivo `world.o', necesario para `world.gpe'. Alto.
Process terminated with status 2 (0 minutes, 0 seconds)
0 errors, 0 warnings >>
A alguien le suena? :D
Jajaja, poquito a poco salen otras cosas. :D
Un saludo.
Puck2099
10/12/2008, 01:19
¿Se puede exportar la configuración de code::blocks? Lo digo porque es lo que uso yo ahora para la GP2X y Wiz y si eso te paso la mia.
No lo sé Puck, es que nunca he usado codeblocks, pero me ha gustado, por eso quería usarlo. :D
Si elimino la referencia al obj en el Makefile pasa ese punto, pero se queda en el pantallazo adjunto.
Me estoy volviendo totalmente loco.:P
Pero bueno, tengo que conseguirlo. :D
Un saludo y muchas gracias Puck, si me entero de lo de exportar las opciones te lo digo para ver si me lo puedes pasar. ;)
¿Pero la comparativa es con las SDL de la GP2X de Paeryn o las de GPH? Lo digo porque las de GPH no están aceleradas.
Según el autor de la comparativa, en la Gp2x usó las aceleradas y en la Wiz las no aceleradas de GPH (simplemente porque en Wiz aún no hay aceleradas). Que dirás "claro, así cualquiera", pero es que no es comprensible que las SDL oficiales de GPH no estén aceleradas, y es un argumento a favor del linkado estático. Y la mejora entre aceleradas y no aceleradas es muy evidente, al menos en esta comparativa.
Y llegados a este punto, me doy cuenta de que no tengo ni pajolera idea de qué es lo que está acelerado en las librerías de Paeryn :D
fmayosi, como bien te está diciendo el Code:blocks, te faltan las líneas para compilar los archivos .c y .cpp. A tu Makefile añade al final:
.c.o:
$(CC) -c $(CFLAGS) $< -o $@
.cpp.o:
$(CXX) -c $(CXXFLAGS) $< -o $@
(sacado del hilo http://www.gp32spain.com/foros/showthread.php?t=60206)
Puck2099
10/12/2008, 19:53
Según el autor de la comparativa, en la Gp2x usó las aceleradas y en la Wiz las no aceleradas de GPH (simplemente porque en Wiz aún no hay aceleradas). Que dirás "claro, así cualquiera", pero es que no es comprensible que las SDL oficiales de GPH no estén aceleradas, y es un argumento a favor del linkado estático. Y la mejora entre aceleradas y no aceleradas es muy evidente, al menos en esta comparativa.
Claro, pero eso es como comparar un coche de calle con uno preparado para competición, a esa comparativa le vendría bien hacerlo también con las SDL de GPH para la GP2X.
Y llegados a este punto, me doy cuenta de que no tengo ni pajolera idea de qué es lo que está acelerado en las librerías de Paeryn :D
Pues básicamente que los de GPH cogen el código fuente de las SDL y lo compilan como si fuera un Linux más, sin tener en cuenta nada del hardware que hay por debajo (de ahí que no les funcionaran los 8 bpp en la Wiz y tuviera que implementarlo yo...).
Paeryn lo que hizo fue tirar de registros y demás funciones específicas de la consola (blittings por hardware, reescalados hardware, etc.) para mejorar las SDL, pero haciéndolas incompatibles con cualquier otro hardware que no fuera la GP2X y, por tanto, incompatibles con la Wiz.
Gracias por la explicación de lo que es la SDL acelerada. Pero mi opinión sigue siendo que lo que Paeryn hizo tenía que haberlo hecho GPH tanto en Gp2x como ahora en Wiz. Porque si no aparece ningún Rlyeh en la Wiz que abra el camino de exploración del hardware, nos quedaremos sin exprimir la consola tanto como se exprimió la Gp2x.
Y esa comparativa es una muestra: ¿de qué sirve tres veces más potencia si solo aumenta el rendimiento un 0,5? Es que no se ha quedado simplemente un poco por detrás, es que es la mitad de de rápida de lo que en teoría puede llegar a ser. Y de hecho la diferencia entre rendimiento teórico y real es tan grande, que hace sospechar que no solo es cuestión de aceleración y a lo mejor el acceso a memoria se ha convertido en un cuello de botella, por ejemplo.
O que la comparativa no vale para nada porque no es un benchmark serio, que también puede estar pasando :D
Puck2099
10/12/2008, 21:17
Bueno, yo empecé unas minilib para la Wiz, lo que pasa es que con el TFC y el curro apenas he tenido tiempo de seguir dedicándole, pero llegué a implementar los controles, acceso al framebuffer en 8 y 16 bpp, overclocking y no sé si algo más (lo que iba necesitando para el Fenix). Además, como los de GPH empezaron a cambiar cosas de la pantalla lo dejé para no perder el tiempo.
Todavía es pronto para que haya unas bibliotecas decentes, pero me consta que los de GPH siguen currando en las SDL y cuando salga la Wiz oficialmente empezarán a desarrollarse otras aceleradas, la información técnica la tenemos al menos algunos programadores, así que no hace falta rebuscar mucho para dar con lo que buscamos ;)
Eres un crack juanvvc, sip, faltaba eso, lo que pasa es que esto sigue dando más errores, es un poco frustrante la verdad. :D
Dejo lo que me dice por si os suena, voy a seguir buscando por internete.
Como me funcione esto un día voy a tener que hacer un mega backup. :P
---------------
/home/paco/gp2xdev/bin/arm-linux-gcc -static -o world.gpe world.o -L /home/paco/gp2xdev/lib -lSDL -lz -lm -lpthread
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_error.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_error.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_fatal.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_fatal.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_audio.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_audio.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_audiocvt.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_audiocvt.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_audiomem.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_audiomem.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_dspaudio.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_dspaudio.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_dmaaudio.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_dmaaudio.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_bmp.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_bmp.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_pixels.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_pixels.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_surface.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_surface.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_video.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_video.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_nullvideo.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_nullvideo.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_gp2xvideo.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_gp2xvideo.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_events.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_events.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_quit.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_quit.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_active.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_active.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_keyboard.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_keyboard.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_mouse.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_mouse.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_resize.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_resize.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_joystick.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_joystick.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_sysjoystick.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_sysjoystick.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_thread.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_thread.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_systhread.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_systhread.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_sysmutex.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_sysmutex.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_syssem.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_syssem.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_timer.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_timer.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_systimer.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_systimer.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_endian.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_endian.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_rwops.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_rwops.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_audiodev.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_audiodev.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_RLEaccel.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_RLEaccel.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_blit.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_blit.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_blit_0.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_blit_0.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_blit_1.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_blit_1.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_blit_N.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_blit_N.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_cursor.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_cursor.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_nullevents.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_nullevents.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_gp2xevents.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_gp2xevents.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_cpuinfo.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_cpuinfo.o)
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: ERROR: /home/paco/gp2xdev/lib/libSDL.a(SDL_blit_A.o) uses hardware FP, whereas world.gpe uses software FP
/home/paco/gp2xdev/bin/../lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: failed to merge target specific data of file /home/paco/gp2xdev/lib/libSDL.a(SDL_blit_A.o)
collect2: ld returned 1 exit status
make: *** [world.gpe] Error 1
Process terminated with status 2 (0 minutes, 1 seconds)
0 errors, 0 warnings
----------------------
Muchas gracias y un saludo.
Puck2099
11/12/2008, 00:27
La cagaste, tu toolchain genera archivos con FP por software y las bibliotecas están compiladas para usarlo por hardware...
Yo no he sabido arreglar ese problema salvo cambiando de toolchain/bibliotecas... :(
Algo de eso he estado leyendo, pero no encuentro solución.
El toolchain es el de Uncanny...
Creo que voy a tener que desistir e instalar el normal de GPH, olvidándome de las librerías de Payren y demás.
Tiro la toalla, voy a desinstalar todo, instalo el normal y si no va me vuelvo a Windows en el de sobremesa.
Muchas gracias por todo y perdonad por las molestias ocasionadas. ;)
Un saludo.
Como dice la Winny
No, no, no.
Instala Open2x, el toolchain y las librerías (el firmware no lo necesitas), y utiliza el mismo Makefile que has puesto (cambiando los directorios, claro). Y verás que funciona a la primera. Luego, si quieres, instalas la de Payren encima. Pero solo si quieres y lo necesitas, que seguramente no :D
Ok juanvvc, haré lo que me indicas, las de Payren era por ver que tal iban las cosas con ellas, pero vamos que era sólo por "jugar" un poco. ;)
Muchas gracias.
Bueno, pues al final me he bajado las librerías del open2x y las he metido en el directorio de las librerías machacando las otras y sorprendentemente ha compilado. Eso sí, ahora elarchivo no lo veo desde la GP2x, pero eso es otra batalla que tendré en otro momento. :P
Gracias a todos por la ayuda, empezaré a hacer pruebas para ver si me adapto al codeblocks. ;)
Un saludo.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.