Segata Sanshiro
24/04/2010, 14:35
Estoy intentando compilar la librería SDL_sound para Wiz, pero entre que no es algo trivial, y que nunca me había estado pegando con compiladores, configures, etc., no lo consigo.
Por un lado, he intentado compilarla siguiendo las instrucciones que venían con el código fuente. Primero se ejecuta un script que usa libtoolize y luego ya configure con las opciones deseadas (por ejemplo --enable-vorbis para compilar con soporte OGG). Sin embargo, configure acaba cerrándose con el siguiente mensaje:
/bin/bash: ./ltconfig: No such file or directory
configure: error: libtool configure failed
Efectivamente ltconfig no está en el directorio y no sé de dónde debería salir o dónde debería generarse. Las búsquedas en google no han arrojado mucha luz al asunto. ¿Alguien sabe por dónde van los tiros?
Por otro lado, he intentado hacer lo mismo pero con el Code::Blocks. En este caso sí he conseguido que compilara, después de estar un tiempo configurando librerías, rutas, etc. Sin embargo, el binario que se genera ocupa menos de 16 KB, por lo que evidentemente algo ha ido mal. He pensado que quizás no se compilara con soporte a ningún formato, ya que hay que activarlos a mano. He mirado las cabeceras y tal y juraría que se hace incluyendo líneas como
#define SOUND_SUPPORTS_OGG 1
#define SOUND_SUPPORTS_WAV 1
pero el libSDL_sound.so generado solo aumenta unos pocos KB de tamaño, por lo que sigue mal. Una vez copiada a /lib en la Wiz, cuando ejecuto mi programa de prueba (que en PC funciona perfectamente) a través del terminal de Qtopia, termula, etc., lanza el siguiente error:
./2DTutorial.gpe: symbol lookup error: /lib/libSDL_sound.so: undefined symbol: __Sound_DecoderFunctions_WAV
Dicha variable se menciona en SDL_sound.c:
#if (defined SOUND_SUPPORTS_WAV)
extern const Sound_DecoderFunctions __Sound_DecoderFunctions_WAV;
#endif
y se declara en /decoders/wav.c:
const Sound_DecoderFunctions __Sound_DecoderFunctions_WAV =
{
{
extensions_wav,
"Microsoft WAVE audio format",
"Ryan C. Gordon <icculus@clutteredmind.org>",
"http://www.icculus.org/SDL_sound/"
},
WAV_init, /* init() method */
WAV_quit, /* quit() method */
WAV_open, /* open() method */
WAV_close, /* close() method */
WAV_read, /* read() method */
WAV_rewind /* rewind() method */
};
y wav.c es uno de los ficheros que aparece correctamente compilado en el "build log". Que por cierto, todos los ficheros objeto generados tienen unos tamaños irrisorios, la mayoría de alrededor de 500 bytes! Así no me extraña que luego la librería ocupe tan sumamente poco :confused:
En fin, gracias si habéis llegado hasta el final y estaré agradecido a todo aquél que me pueda echar un cable.
Por un lado, he intentado compilarla siguiendo las instrucciones que venían con el código fuente. Primero se ejecuta un script que usa libtoolize y luego ya configure con las opciones deseadas (por ejemplo --enable-vorbis para compilar con soporte OGG). Sin embargo, configure acaba cerrándose con el siguiente mensaje:
/bin/bash: ./ltconfig: No such file or directory
configure: error: libtool configure failed
Efectivamente ltconfig no está en el directorio y no sé de dónde debería salir o dónde debería generarse. Las búsquedas en google no han arrojado mucha luz al asunto. ¿Alguien sabe por dónde van los tiros?
Por otro lado, he intentado hacer lo mismo pero con el Code::Blocks. En este caso sí he conseguido que compilara, después de estar un tiempo configurando librerías, rutas, etc. Sin embargo, el binario que se genera ocupa menos de 16 KB, por lo que evidentemente algo ha ido mal. He pensado que quizás no se compilara con soporte a ningún formato, ya que hay que activarlos a mano. He mirado las cabeceras y tal y juraría que se hace incluyendo líneas como
#define SOUND_SUPPORTS_OGG 1
#define SOUND_SUPPORTS_WAV 1
pero el libSDL_sound.so generado solo aumenta unos pocos KB de tamaño, por lo que sigue mal. Una vez copiada a /lib en la Wiz, cuando ejecuto mi programa de prueba (que en PC funciona perfectamente) a través del terminal de Qtopia, termula, etc., lanza el siguiente error:
./2DTutorial.gpe: symbol lookup error: /lib/libSDL_sound.so: undefined symbol: __Sound_DecoderFunctions_WAV
Dicha variable se menciona en SDL_sound.c:
#if (defined SOUND_SUPPORTS_WAV)
extern const Sound_DecoderFunctions __Sound_DecoderFunctions_WAV;
#endif
y se declara en /decoders/wav.c:
const Sound_DecoderFunctions __Sound_DecoderFunctions_WAV =
{
{
extensions_wav,
"Microsoft WAVE audio format",
"Ryan C. Gordon <icculus@clutteredmind.org>",
"http://www.icculus.org/SDL_sound/"
},
WAV_init, /* init() method */
WAV_quit, /* quit() method */
WAV_open, /* open() method */
WAV_close, /* close() method */
WAV_read, /* read() method */
WAV_rewind /* rewind() method */
};
y wav.c es uno de los ficheros que aparece correctamente compilado en el "build log". Que por cierto, todos los ficheros objeto generados tienen unos tamaños irrisorios, la mayoría de alrededor de 500 bytes! Así no me extraña que luego la librería ocupe tan sumamente poco :confused:
En fin, gracias si habéis llegado hasta el final y estaré agradecido a todo aquél que me pueda echar un cable.