User Tag List

Resultados 1 al 7 de 7

Tema: Problemas con mixer

  1. #1

    Fecha de ingreso
    May 2009
    Ubicación
    Barcelona (A las afueras de)
    Mensajes
    32
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts

    Problemas con mixer

    Hola, tengo un compilador para wiz en linux, la versión 4.0.2. El problema es que no tiene las librerías SDL_mixer. La primera solución que se me ha ocurrido ha sido copiar en las carpetas las librerías del toolchain de la zona de descargas:
    libSDL_mixer-1.2.so.0
    libSDL_mixer-1.2.so.0.2.6
    libSDL_mixer.a
    libSDL_mixer.la
    libSDL_mixer.so
    libSDL_mixer.so.lnk
    y el .h en sus respectivas carpetas. Pero al compilar tengo un problema en la última fase:
    [...]
    /usr/local/wizdev/arm-linux/bin/arm-linux-g++ -o game.bin src/buildings.o src/cursor.o [...] src/audio.o -L/usr/local/wizdev/arm-linux/lib/gcc/arm-linux/4.0.2/ -L/usr/local/wizdev/arm-linux/lib -L/usr/local/wizdev/arm-linux/arm-linux/lib -L/usr/local/wizdev/arm-linux/arm-linux/usr/lib -lc -lSDL -lSDL_mixer -lpng12 -lz -lpthread -lm -lts
    /usr/local/wizdev/arm-linux/arm-linux/lib/libSDL_mixer.so: file not recognized: File format not recognized
    collect2: ld returned 1 exit status
    make: *** [game.bin] Error 1

    ¿Alguna idea? ¿Puede ser porque son versiones muy distintas (4.0.2 a 4.2.4)?. Otra solución sencilla sería usar la nueva versión que lo incluye todo, pero es que no tengo ningún makefile, estoy intentando hacer uno yo mismo pero me resulta muy complicado. ¿Alguien tiene uno de la nueva versión?


    Saludos.

  2. #2

    Fecha de ingreso
    Apr 2004
    Mensajes
    1,011
    Mencionado
    39 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    118
    Agradecer Thanks Received 
    95
    Thanked in
    Agradecido 68 veces en [ARG:2 UNDEFINED] posts
    No puedes mezclar librerías y toolchains. Cada toolchain tiene sus librerías y te soltará este tipo de errores si intentas utilizar las librerías compiladas utilizando otros toolchains.

    Tienes dos opciones:

    - Bajarte un toolchain y sus respectivas librerías.
    - Bajarte un toolchain y compilar con él las librerías que te interesen.
    make -f Makefile.wiz

  3. #3

    Fecha de ingreso
    May 2009
    Ubicación
    Barcelona (A las afueras de)
    Mensajes
    32
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Muchas Gracias. Creo que me va a costar bastante encontrar las librerías para la versión esa antigua. He intentado compilar la librería y no lo consigo. Creo que lo más sencillo es bajarme el toolchain nuevo y compilar usando ese. Así que es lo que he hecho. Pero he intentado compilar y me da error:
    Código:
     /opt/arm-openwiz-linux-gnu/bin/arm-openwiz-linux-gnu-c++ src/*.cpp -o main.x -lSDL -lSDL_mixer -I/opt/arm-openwiz-linux-gnu/include/ -L/opt/arm-openwiz-linux-gnu/lib/
    /opt/arm-openwiz-linux-gnu/bin/../lib/gcc/arm-openwiz-linux-gnu/4.2.4/../../../../arm-openwiz-linux-gnu/bin/ld: warning: libiconv.so.2, needed by /opt/arm-openwiz-linux-gnu/lib//libSDL.so, not found (try using -rpath or -rpath-link)
    /opt/arm-openwiz-linux-gnu/bin/../lib/gcc/arm-openwiz-linux-gnu/4.2.4/../../../../arm-openwiz-linux-gnu/bin/ld: warning: libvorbisidec.so.1, needed by /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so, not found (try using -rpath or -rpath-link)
    /opt/arm-openwiz-linux-gnu/bin/../lib/gcc/arm-openwiz-linux-gnu/4.2.4/../../../../arm-openwiz-linux-gnu/bin/ld: warning: libmad.so.0, needed by /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so, not found (try using -rpath or -rpath-link)
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_timer_set'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_timer_zero'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `ov_clear@libvorbisidec.so.1'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_synth_frame'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_stream_init'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_stream_buffer'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_frame_init'
    /opt/arm-openwiz-linux-gnu/lib//libSDL.so: undefined reference to `libiconv'
    /opt/arm-openwiz-linux-gnu/lib//libSDL.so: undefined reference to `libiconv_close'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_frame_finish'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `ov_time_seek@libvorbisidec.so.1'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_stream_finish'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `ov_open_callbacks@libvorbisidec.so.1'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_timer_compare'
    /opt/arm-openwiz-linux-gnu/lib//libSDL.so: undefined reference to `libiconv_open'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_synth_init'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `ov_read@libvorbisidec.so.1'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `ov_pcm_total@libvorbisidec.so.1'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_frame_decode'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `mad_timer_add'
    /opt/arm-openwiz-linux-gnu/lib//libSDL_mixer.so: undefined reference to `ov_info@libvorbisidec.so.1'
    collect2: ld returned 1 exit status
    ¿Se podría solucionar con un Makefile?¿He seguido mal las instrucciones al "instalarlo"?¿Alguna idea?

  4. #4

    Fecha de ingreso
    Jan 2008
    Ubicación
    Madrid
    Mensajes
    4,465
    Mencionado
    14 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    88
    Agradecer Thanks Received 
    171
    Thanked in
    Agradecido 100 veces en [ARG:2 UNDEFINED] posts
    Te está pidiendo la libmad y la libvorbisdec, son dependencias de la SDL_mixer. Añade esto al compilador:

    Código:
    -lSDL_mixer -lvorbisidec -lmikmod -lmad

  5. #5

    Fecha de ingreso
    May 2009
    Ubicación
    Barcelona (A las afueras de)
    Mensajes
    32
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Gracias! Ya he dado un pasito más y he conseguido compilar (bueno, también he añadido -liconv).
    Código:
    /opt/arm-openwiz-linux-gnu/bin/arm-openwiz-linux-gnu-c++ src/*.cpp -o main.x -lSDL -lSDL_mixer -lvorbisidec -lmikmod -lmad -liconv -I/opt/arm-openwiz-linux-gnu/include/ -L/opt/arm-openwiz-linux-gnu/lib/
    Pero al ejecutar el juego me ha sacado esto por la salida de error:
    ./game.bin: error while loading shared libraries: libmikmod.so.2: cannot open shared object file: No such file or directory
    Y me ha devuelto al menú.

    No entiendo mucho de esto, pero creo que a la wiz le falta la librería. ¿He hecho algo mal? ¿O es que tengo que compilar estáticamente? He intentado compilar estáticamente y me pide mil cosas.

    Otra cosa que he probado de hacer es compilar sin -lmikmod y compila, solo que se queda colgado en "loading...". ¿Se cuelga porque realmente hace falta mikmod? ¿Quizás es por los parámetros que le he pasado para abrir el audio no son correctos? ¿O es otra cosa? Esta vez no me queda nada escrito en la salida de error

    Muchas gracias y a ver si al final consigo hacer que funcione la dichosa SDL_mixer (es más complicado de lo que pensaba...).

  6. #6

    Fecha de ingreso
    Jan 2008
    Ubicación
    Madrid
    Mensajes
    4,465
    Mencionado
    14 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    88
    Agradecer Thanks Received 
    171
    Thanked in
    Agradecido 100 veces en [ARG:2 UNDEFINED] posts
    Prueba a poner la libmikmod.so.2 de ARM que te pide a lado del ejecutable, algunas no se incluyen en el firmware o no coinciden las versiones.

    Para ver lo que pasa cuando se te queda en "loading..." prueba a lanzar el ejecutable desde Termula. Es una terminal de Linux, y escribe algún error o revienta te lo dirá. Muchas veces esto no se ve si lo direccionas a un fichero, porque sale sin volcar los buffers.

  7. #7

    Fecha de ingreso
    May 2009
    Ubicación
    Barcelona (A las afueras de)
    Mensajes
    32
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Eyyy muchas gracias!!! Al final ha funcionado con eso de poner las .so junto al ejecutable (aunque me ha pedido unas cuantas). Igualmente eso de Termula parece interesante, lo probaré en cuanto tenga tiempo.

    Saludos y gracias

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •