Problema usando SDL_ttf por primera vez.

Tratamos sobre el manejo de APIs frecuentemente utilizadas en el desarrollo de videojuegos, como SDL, pygame o SFML.

Problema usando SDL_ttf por primera vez.

Notapor lacabra25 » Lun Abr 07, 2008 7:05 pm

Hola, he instalado en mi compilador (dev-c++) la libreria SDL_ttf, descargandola del sitio oficial, poniendo en el directorio lib del compilador los archivos (en el caso de esta libreria el archivo) contenido en la carpeta lib de la libreria, el include dentro de include/sdl del compilador, y poniendo en los parametros del linker -ISDL_ttf, mientras compile sin usar la libreria (estando el parametro del linker e incluido de .h, "SDL/SDL_ttf.h") no me da error, pero nada mas intentar inicializar SDL_ttf me da un error como que no estan declaradas las funciones, pero sinembargo no me da ningun error si defino un puntero de tipo fuente "TTF_Font *fuente;" (sin las comillas, claro).

¿Como puedo solucionar esto? :roll: , gracias de antemano por toda la ayuda posible, porque necesito dejar instalar SDL_ttf de una vez para poder escribir texto como puntuaciones y similares en mis juegos.

Los errores que me da son:

[Linker error] undefined reference to `TTF_Quit'
[Linker error] undefined reference to `TTF_Init'
ld returned 1 exit status
C:\Documents and Settings\admin\Mis documentos\3EL\Makefile.win [Build Error] [3EL.exe] Error 1


Y:

Compilador: Default compiler
Building Makefile: "C:\Documents and Settings\admin\Mis documentos\3EL\Makefile.win"
Ejecutando make...
make.exe -f "C:\Documents and Settings\admin\Mis documentos\3EL\Makefile.win" all
gcc.exe -c 3EL.c -o 3EL.o -I"C:/Dev-Cpp/include" -mwindows

gcc.exe 3EL.o 3EL_private.res -o "3EL.exe" -L"C:/Dev-Cpp/lib" -lmingw32 -lSDLmain -lSDL -lSDL_image -lSDL_mixer -ISDL_ttf -ISDL_net -mwindows

3EL.o(.text+0xb8):3EL.c: undefined reference to `TTF_Quit'
3EL.o(.text+0xc2):3EL.c: undefined reference to `TTF_Init'
collect2: ld returned 1 exit status

make.exe: *** [3EL.exe] Error 1

Ejecución Terminada


¿Como puedo solucionar esto?, gracias de antemano por toda la ayuda posible, porque necesito dejar instalar SDL_ttf de una vez para poder escribir texto como puntuaciones y similares en mis juegos.
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor Geo » Mié Abr 09, 2008 12:48 pm

Tienes problemas al enlazar con SDL_ttf.

Lo más probable es que tu archivo para enlazar se llame SDL_ttf.lib y no libSDL_ttf.a, así que, en los parámetros al enlazador (linker), debes sustituir -lSDL_ttf por SDL_ttf.lib, o, para mayor seguridad, agrega el archivo SDL_ttf.lib buscándolo con la opción "Agregar librería u objeto" dentro de "Opciones Adicionales de línea de comando:" en "Opciones de proyecto".

Suerte.
La imaginación es el límite.
Visita mi blog en inglés o en español.
Geo
 
Mensajes: 244
Registrado: Jue Ago 10, 2006 3:51 am
Ubicación: México

Notapor lacabra25 » Mié Abr 09, 2008 4:05 pm

Geo, probe a poner la extension .lib, pero no funciona, ¿hay otra solucion posible?, ¿cual es la causa de que no funcione, el error que da el compilador no es de no encontrar el archivo, pone undefineed, que puede causarlo?

Errores:

[Linker error] undefined reference to `TTF_Quit'
[Linker error] undefined reference to `TTF_Init'
ld returned 1 exit status
C:\Documents and Settings\admin\Mis documentos\3EL 0.0.0.0\Makefile.win [Build Error] [3EL.exe] Error 1
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor Geo » Jue Abr 10, 2008 7:54 am

Geo escribió:para mayor seguridad, agrega el archivo SDL_ttf.lib buscándolo con la opción "Agregar librería u objeto" dentro de "Opciones Adicionales de línea de comando:" en "Opciones de proyecto".

A mi me ha dado problemas al sólo poner SDL_ttf.lib, por alguna razón el enlazador falla si no se le indica la ruta completa, si agregas el archivo SDL_ttf.lib de esta forma, se indicará la ruta relativa ./../../archivoslib/SDL_ttf.lib (o algo así), y el enlazador lo encontrará sin problemas.
La imaginación es el límite.
Visita mi blog en inglés o en español.
Geo
 
Mensajes: 244
Registrado: Jue Ago 10, 2006 3:51 am
Ubicación: México

Notapor lacabra25 » Jue Abr 10, 2008 3:08 pm

Geo gracias, poniendo el las opciones del linker la direccion pude compilar sin que diera ningun error, y solo me queda una pequeña duda: ¿porque la libreria ttf no la encuentra si no se le pone la direccion y las demas como sdl y image o mixer las encuentra con solo poner -ISDL_image, -ISDLmain o -ISDL_mixer?
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor Geo » Sab Abr 12, 2008 5:33 am

lacabra25 escribió:Geo gracias, poniendo el las opciones del linker la direccion pude compilar sin que diera ningun error, y solo me queda una pequeña duda: ¿porque la libreria ttf no la encuentra si no se le pone la direccion y las demas como sdl y image o mixer las encuentra con solo poner -ISDL_image, -ISDLmain o -ISDL_mixer?

Primero, se necesita la ruta completa porque el enlazador no reconoció en qué directorio buscar el archivo SDL_ttf.lib
Segundo, el archivo SDL_ttf.lib que bajaste fué creado con Visual C++, en Linux (con el compilador GCC) normalmente dichos archivos se llaman libNOMBRELIBRERIA.a, y es con el parámetro -lNOMBRE_LIBRERIA que indicas que se debe enlazar la librería adecuada. Así, -lSDL_image indica que se debe enlazar con el archivo libSDL_image.a. Te comento lo de Linux porque Dev-C++ hace uso del compilador MinGW, que es un port del compilador GCC presente en todos los Linux (y en otros sistemas *nix).

Otra opción, quizá más sencilla: renombra el archivo SDL_ttf.lib a libSDL_ttf.a y utiliza el parámetro -lSDL_ttf para enlazar con esta librería, yo también lo he hecho de esta forma, debe funcionar (si no ha habido algún cambio "extraño" en las versiones de los compiladores :)).
La imaginación es el límite.
Visita mi blog en inglés o en español.
Geo
 
Mensajes: 244
Registrado: Jue Ago 10, 2006 3:51 am
Ubicación: México


Volver a Sobre las bibliotecas multimedia

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado