Ver la versión completa : Problemas enlazando
Buenas, estaba compilando un programa q habia hecho en SDL, y en el pc funciona perfectamente, a la hora de recompilarlo para la GP2X, estoy teniendo problemas con el enlazador.
Aunque paso las rutas de las librerias con -L y las librerias en si mismo con -l, me dice q no resuelve las referencias a las funciones...
dialogp2x.o: In function `z_dibuja_texto':
zakosdl.c: (.text+0x328): undefined reference to `TTF_RenderText_Blended'
zakosdl.c: (.text+0x374): undefined reference to `SDL_UpperBlit'
zakosdl.c: (.text+0x37c): undefined reference to `SDL_FreeSurface'
dialogp2x.o: In function `z_termina':
zakosdl.c: (.text+0x398): undefined reference to `chdir'
zakosdl.c: (.text+0x3a8): undefined reference to `execl'
Teneis alguna idea? la linea con que lanzo el enlazado seria:
arm-linux-ld -static -L/usr/local/devkitPro/devkitGP2X/lib -L/home/zako/gp2x/libsdl/lib/ -lSDLmain -lSDL_image -lpng12 -ljpeg -lz -lc -lm -lSDL_mixer -lvorbisidec -lmikmod -lSDL -lpthread dialogp2x.o -o dialogp2x.gpe
teniendo el .o generado, claro, y estoy usando las SDL compiladas de theoddbot.
Prueba con (edito, me ha faltado poner -lSDLmain):
-lSDLmain -lSDL -lSDL_image -lpng -ljpeg -lSDL_mixer -lvorbisidec -lmikmod -lSDL_ttf -lfreetype -lz -lc -lm -lpthread
Prueba con (edito, me ha faltado poner -lSDLmain):
-lSDLmain -lSDL -lSDL_image -lpng -ljpeg -lSDL_mixer -lvorbisidec -lmikmod -lSDL_ttf -lfreetype -lz -lc -lm -lpthread
nada, lo mismo :/
Bueno, yo siempre suelo usar gcc para enlazar por si aun le queda algo por compilar, y en teoria, añadiendo: "-lSDL_ttf -lfreetype" deberia funcionar...
Bueno, yo siempre suelo usar gcc para enlazar por si aun le queda algo por compilar, y en teoria, añadiendo: "-lSDL_ttf -lfreetype" deberia funcionar...
nah, estaba enlazando con el ld porque el compilado si funciona, pero si lo hago directamente con gcc:
arm-linux-gcc -static -I/home/zako/gp2x/libsdl/include/ -I/home/zako/gp2x/libsdl/include/SDL/ -L/home/zako/gp2x/libsdl/lib/ -L/usr/local/devkitPro/devkitGP2X/sysroot/lib/ -lSDL -lSDLmain -lSDL_image -lpng12 -ljpeg -lz -lc -lm -lgcc -lSDL_mixer -lvorbisidec -lmikmod -lpthread main.c zakosdl.c -o dialogp2x.gpe
pasa lo mismo...
[...]
/tmp/ccIjtG4E.o: In function `z_dibuja_texto':
zakosdl.c:(.text+0x328): undefined reference to `TTF_RenderText_Blended'
zakosdl.c:(.text+0x374): undefined reference to `SDL_UpperBlit'
zakosdl.c:(.text+0x37c): undefined reference to `SDL_FreeSurface'
collect2: ld returned 1 exit status
Parece que el problema es cuando compilo con -static.
Si enlazo con librerias dinamicas, va bien.
Alguna idea?
Parece que el problema es cuando compilo con -static.
Si enlazo con librerias dinamicas, va bien.
Alguna idea?Mira en el subdirectorio lib a ver si alguna de esas librerías que usas para enlazar estáticamente le falta su librería estática (*.a) correspondiente.
En principio estan todas... libSDL.a, libSDL_ttf.a ...
Prueba a ponerlo duplicado:
-lSDLmain -lSDL -lSDL_image -lpng -ljpeg -lSDL_mixer -lvorbisidec -lmikmod -lSDL_ttf -lfreetype -lz -lc -lm -lpthread -lSDLmain -lSDL -lSDL_image -lpng -ljpeg -lSDL_mixer -lvorbisidec -lmikmod -lSDL_ttf -lfreetype -lz -lc -lm -lpthread
Parece un problema de orden, a mi tambien me ha pasado. Yo uso la siguiente combinacion:
LIBS = -lz -lpng -lm `arm-unknown-linux-gnu-sdl-config --libs` -lSDL_image -lSDL_ttf -lSDL_gfx -static -lz -lpng -lm `arm-unknown-linux-gnu-sdl-config --libs` -lSDL_image -lSDL_ttf -lSDL_gfx -lfreetype -lz
Como ves tengo algunas duplicadas, es que si no no hay forma de que las coga porque unas dependen de otras
Ah y no te olvides de -lfreetype, que en uno de los comandos que has puesto creo que no estaba
Nada, ni duplicando, ni de ninguna manera, voy a probar con otro toolchain q tengo en el otro PC a ver si alli consigo algo, pq ya no se que mirar. Intente compilar otros programas con otras librerias (algunas que estoy portando a la gp2x) y si intento compilar con -static nada, lo mismo, asi q no son las SDL...
De todas maneras si se os ocurre algo...
he vuelto a compilar toda la toolchain usando el script perl de GP2XDev, y nada, lo mismo, enlazando con -static me saca esos errores, ya no se me ocurre q hacer xD
Se os ocurre donde pueda buscar ayuda?
Un saludin,
zako
Si os fijais en los comandos que lanzo, pongo al final mis archivos a compilar... pues simplemente poniendolos al principio, ya rula perfectamente.
Tonteria eh? pues casi me vuelvo loco xDDD
Gracias a theoddbot que no ha sido asi.
Saludos y muchas gracias a todos!!!
zako.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.