PDA

Ver la versión completa : Error al linkar usando SDL_Image



mog_ur
30/01/2006, 20:31
Hola

Después de mucho sufrir conseguí empezar a hacer aplicaciones compiladas para la GP2X, usando SDL, pero ahora al intentar usar las SDL_mixer o las SDL_Image me da un error al linkar.

Uso las sdl que proponía miq01 en este post (http://www.gp32spain.com/foros/showthread.php?t=24690&highlight=windows) (si no hubiera sido por este post no hubiera sabido ni empezar), lo cierto es que el post me ayudó a empezar pero no lo seguí al pie de la letra porque creo que encontré una manera más sencilla (si solvento este problema escribiré un minitutorial para tontos, como yo), la cuestión es que al intentar usar las SDL_Image me da el siguiente error "Undefined reference to SDL_RWFromFile"

No se si a alguien más os pasa o si es que hago algo mal, ¿se os ocurre algo a ver si consigo solucionar el tema?

Gracias de antemano

PD: Si necesitais más información de como tengo configurado el tema no teneis más que preguntar

BuD
30/01/2006, 20:38
Hola

Después de mucho sufrir conseguí empezar a hacer aplicaciones compiladas para la GP2X, usando SDL, pero ahora al intentar usar las SDL_mixer o las SDL_Image me da un error al linkar.

Uso las sdl que proponía miq01 en este post (http://www.gp32spain.com/foros/showthread.php?t=24690&highlight=windows) (si no hubiera sido por este post no hubiera sabido ni empezar), lo cierto es que el post me ayudó a empezar pero no lo seguí al pie de la letra porque creo que encontré una manera más sencilla (si solvento este problema escribiré un minitutorial para tontos, como yo), la cuestión es que al intentar usar las SDL_Image me da el siguiente error "Undefined reference to SDL_RWFromFile"

No se si a alguien más os pasa o si es que hago algo mal, ¿se os ocurre algo a ver si consigo solucionar el tema?

Gracias de antemano

PD: Si necesitais más información de como tengo configurado el tema no teneis más que preguntar
En esa misma porcion de codigo que usas las SDL_image, tienes #include "SDL.h" ? En teoria con -lSDL deberia tirar millas...

mog_ur
30/01/2006, 20:53
Si lo compilo para windows si que me funciona :(

tomo
01/02/2006, 05:42
Con SDL_Image debes añadir tambien estas libs:
-ljpeg -lpng12 -lz

Y con SDL_Mixer, estas:
-lsmpeg -lvorbisfile -lvorbis -logg -lmikmod

miq01
01/02/2006, 06:03
Aquí tienes mi línea LIBS, por si te sirve. Verás que es muy similar a lo que propone Tomo:

LIBS = -L"C:/Informatica/devkitGP2X/lib" -lSDL_image -lpng12 -lz -ljpeg -lm -ldl -lSDL_mixer -lvorbisidec -lmikmod -lSDL -lpthread


Uso las sdl que proponía miq01 en este post (http://www.gp32spain.com/foros/showthread.php?t=24690&highlight=windows) (si no hubiera sido por este post no hubiera sabido ni empezar), lo cierto es que el post me ayudó a empezar pero no lo seguí al pie de la letra porque creo que encontré una manera más sencilla (si solvento este problema escribiré un minitutorial para tontos, como yo)
La explicación de ese post, no es que no sea válida, pero está ya algo caducada... :) Si escribes ese minitutorial, podrías colgarlo en el Wiki.

mog_ur
01/02/2006, 17:23
De veras que lo he intentado pero no se si es que no uso las librerías sdl adecuadas o que. Estoy desesperado.

Os digo lo que uso:

- Las gp2xlibs.tar.gz que estan lincadas en el post de miq01 del que hable cuando os plantee mi duda
- Las DevkitGP2X R2 que están en la zona de descarga de www.gp32spain.com
- El ide que uso es el Dev-C++ versión 4.9.9.2

Gracias por la ayuda



Edit: Cuando simplemente no uso SDL_Mixer ni SDL_Image todo va bien :(

mad93
01/02/2006, 20:17
El orden al llamar a la librerias en el makefile afecta. Siempre puedes incluirlas todas.

mog_ur
02/02/2006, 03:58
Lo primero gracias por toda vuestra ayuda... pero soy tan tonto que no lo consigo


Ya he hecho un progreso, ahora me compila, pero no puedo decir al compilador que me lo enlace como estático (-static) porque me salen más errores de "undefined reference".

¿Es obligatorio enlazarlo como static verdad? lo he probado sin enlazar como static en la consola y se me queda la pantalla negra

Si es obligatorio que tengo que hacer? y si no es obligatorio que hago para que funcione?

tomo
02/02/2006, 04:10
Se me pasó ponerte la -lpthread en mi post, aunke miq01 ya lo hizo por mi.
Son necesarias todas ellas para compilar estáticamente. Si no lo haces estáticamente, necesitas instalar las SDL en la consola para ke tu programa enlace dinámicamente, y como seguramente no las tienes (al menos no todas), se te keda la pantalla negra.
Te pongo yo también mi lista de bibliotecas. Asegúrate de mantener el orden:

-lSDLmain -lSDL_image -ljpeg -lpng12 -lz -lSDL_ttf -lfreetype -lSDL_gfx -lSDL_Mixer -lsmpeg -lvorbisfile -lvorbis -logg -lmikmod -lSDL -lpthread

mog_ur
02/02/2006, 04:17
-lSDLmain -lSDL_image -ljpeg -lpng12 -lz -lSDL_ttf -lfreetype -lSDL_gfx -lSDL_Mixer -lsmpeg -lvorbisfile -lvorbis -logg -lmikmod -lSDL -lpthreadNo tengo algunas de tus librerías por ejemplo smpeg

Ahora estoy usando theoddbot-libs-open2x-soft-float-beta2r.rar descargada de aquí http://archive.gp2x.de/cgi-bin/cfiles.cgi?0


En total me faltan :confused:
-lsmpeg
-lvorbisfile
-lvorbis
-logg

tomo
02/02/2006, 04:51
Una buena fuente: http://cefiro.homelinux.org/resources/list/SDL-binary-mingw32.html

miq01
02/02/2006, 07:28
No tengo algunas de tus librerías por ejemplo smpeg

Ahora estoy usando theoddbot-libs-open2x-soft-float-beta2r.rar descargada de aquí http://archive.gp2x.de/cgi-bin/cfiles.cgi?0


En total me faltan :confused:
-lsmpeg
-lvorbisfile
-lvorbis
-logg
A mí me pasaba lo mismo: no tenía algunas de esas librerías. Y también tengo las SDL de theoddbot. Prueba con mi línea, a ver.

mog_ur
02/02/2006, 17:15
[wei4] [wei4] [wei4] [wei4] [wei4] POR FIN [wei4] [wei4] [wei4] [wei4] [wei4]

ya lo he conseguido... gracias a todos los que me habeis ayudado

tomo
02/02/2006, 20:01
Ké pasaba? :P