Autor
|
Tema: pequeña ayuda con SDL_mixter (Leído 3,858 veces)
|
CSQCasimiro
Desconectado
Mensajes: 20
|
hola, como andan, espero que bien. verán, ando estudiando por mi cuenta lo que es la librería SDL y la programación con respecto a video juegos, usando base linux ( ubuntu) y de IDE Code::blocks , el problema es que, cuando realizo una función como : Mix_OpenAudio(22050, AUDIO_S16, 2, 4096); Mix_LoadMUS("turbo tunnel.mp3");
me salta error de compilación : undefined reference to 'Mix_OpenAudio' undefined reference to 'Mix_LoadMUS'no se si sera por que instale la biblioteca del SDL_mixter por separado de las demás... bueno, les dejo el codigo completo: #include <iostream> #include <cstring> #include <cstdlib> #include <stdlib.h> #include <SDL.h> //edite en los include iniciales de mi SDL.h para que incluya a la SDL_mixter que no estaba ya que la agregue mas tarde using namespace std; int main ( int argc, char** argv ) { //inicializamos el video y audio SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO|SDL_INIT_AUDIO); //loop game bool GameLoop=true; //variable para eventos SDL_Event evento; //inicializo el modo grafico con un 500 x 200 SDL_Surface *screen; screen=SDL_SetVideoMode(500,800,32,SDL_HWSURFACE); SDL_WM_SetCaption("Ball Race", NULL); Mix_Music *musica; // Inicializamos SDL_mixer Mix_OpenAudio(22050, AUDIO_S16, 2, 4096); // Cargamos la musica musica = Mix_LoadMUS("turbo tunnel.mp3"); while (GameLoop)//loop game { SDL_Flip(screen); } return 0; }
bueno, desde ya muchas gracias.
|
|
|
En línea
|
"Mejora el Algoritmo, no el Código" "Buscando todos los días ser mejor que ayer"
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Hola ¿Estás seguro de que has configurado bien la librería en Codeblocks y estás linkeando bien esta misma?
|
|
|
En línea
|
Regístrate en 
|
|
|
Ferno
Desconectado
Mensajes: 375
|
Como dicen acá arriba, es muy probable que sea un problema de referencia de librerías. Busca cómo instalar una librería en codeblocks, la configuración correspondiente y si concuerda con lo que hiciste!
|
|
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
No se si tendra mucho que ver, pero a la funcion SDL_Init le pasas dos veces SDL_INIT_AUDIO.
Saludos.
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
CSQCasimiro
Desconectado
Mensajes: 20
|
no, linkeada la libreria creo que esta bien, por por ejemplo, cuando declaro que pertenece a esa librería, no salta error. pero bueno, seguiré investigando gracias.
|
|
|
En línea
|
"Mejora el Algoritmo, no el Código" "Buscando todos los días ser mejor que ayer"
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Pues mira una cosa no se si será eso pero estate seguro de que no has puesto esto eh: SDL_mixter.h por que está mal, es SDL_mixer.h, yo que tú probaría a dejar original la SDL.h y poner en tu código SDL/SDL_mixer.h o SDL_mixer.h o donde sea que la tengas.
|
|
|
En línea
|
Regístrate en 
|
|
|
CSQCasimiro
Desconectado
Mensajes: 20
|
ya esta, ya lo solucione , le agregue unos comandos para que me linkee bien al compilar y lo toma bien, es que era rraro que compila bien antes sin tener que hacer eso =/
|
|
|
En línea
|
"Mejora el Algoritmo, no el Código" "Buscando todos los días ser mejor que ayer"
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
ya esta, ya lo solucione , le agregue unos comandos para que me linkee bien al compilar y lo toma bien, es que era rraro que compila bien antes sin tener que hacer eso =/
¡Qué bien! Si no es mucha molestia podrías poner los comandos que utilizaste , por si otro usuario o persona que tenga el mismo problema sepa como solucionarlo. ¡Un saludo!
|
|
|
En línea
|
Regístrate en 
|
|
|
CSQCasimiro
Desconectado
Mensajes: 20
|
si, es que en el code blocks hay que ir a la parte de configuración del compilación, agregar las librerías en la solapa de linkeado, y alado en el otro panel escribir: -L/usr/lib -lSDL -lSDL_mixer -lSDL_net -lpthread -I/usr/include/SDL -D_REENTRANT en este caso, lo resaltado es lo importante: fijense que alado del nombre de las librerias: SDL , SDL_mixer y SDL_net hay un -l , eso significa que cuando compile debe tomar esas librerias de la carpeta de /usr/lib en el caso de librerías (no se si estáticas o dinámicas, ya que cambia en cada caso, osea si las le das el #include con "" o con < > si mal no me equivoco) lo saque del siguiente libro en la parte de apendice, uno altamente recomendable y que lo explica mejor que yo en la parte de apendice: http://www.mediafire.com/view/?2zlmgjaw92bllory muchas gracias a todos lo que invirtieron su tiempo  si sale bien el game se lo dejo, junto con el codigo fuente xd
|
|
|
En línea
|
"Mejora el Algoritmo, no el Código" "Buscando todos los días ser mejor que ayer"
|
|
|
|
|