2011-11-22 13 views
5

Estoy ejecutando Lion de 64 bits pero necesito compilar una versión de 32 bits de ffmpeg porque otra biblioteca que estoy usando solo está disponible como de 32 bits. He intentado varias configuraciones diferentes pero todas me dan errores. Aquí es lo que he intentado:No se pueden compilar discos duros ffmpeg compatibles con i386 en Mac OS X

./configure --disable-estática --disable-outdev --enable-shared = SDL --disable-bzlib --disable-libfreetype --disable-libopenjpeg - enable-zlib --enable-runtime-cpudetect --arch = i386 --extra-cflags = "- arch i386" --extra-ldflags = "- arch i386" --target-os = darwin --enable-cross- compilar

./configure --disable-static --enable-shared --disable-outdev = sdl --disable-bzlib --disable-libfreetype --disable-libopenjpeg --enable-zlib --enable-runtime -cpudetect --arch = i386 --extra-cflags = "- arch i386" --extra-ldflags = "- arch i386"

./configure --disable-static --enable-s hared --disable-outdev = SDL --disable-bzlib --disable-libfreetype --disable-libopenjpeg enable-zlib --enable-runtime-cpudetect --arch = x86_32

I o bien obtener una "se agotó el registro durante la asignación de registros" error durante make o gcc se queja de que la compilación cruzada no está activa.

Respuesta

11

Pude hacer que esto funcionara en ffmpeg build 08d2cee4 usando clang en lugar de gcc. Así que aquí estaba la línea de configuración que funcionó:

./configure --disable-static --enable-shared --disable-outdev=sdl --enable-runtime-cpudetect --disable-bzlib --disable-libfreetype --disable-libopenjpeg --enable-zlib --cc="clang -m32" 

¡Gracias a Carl en libav-user!

Aquí fue mi hilo en caso de que ayuda a nadie: http://ffmpeg.org/pipermail/libav-user/2011-December/001013.html

0

Voy a tomar una gran conjetura - ¿estaba construyendo: libavcodec/h264_cabac.o?

Intente agregar . IIRC, hay un ensamblaje en línea gcc que no puede obtener suficientes registros. Esta opción libera %ebp para usarla como un registro de propósito general.

+0

correcto, siempre está en 'libavcodec/h264_cabac.o'. Intenté agregar '-fomit-frame-pointer' a' extra-cflags' y 'extra-ldflags', pero sigo recibiendo el mismo error. –

1

Puede intentar usar el indicador -m32 que indica a gcc que compile solo para 32 bits.

+0

no hubo suerte al agregar esto a 'extra-cflags' y' extra-ldflags' :-(. Mismo error sobre quedarse sin registros. –

+0

También seguí los consejos en http://lists.mplayerhq.hu/pipermail/mplayer -users/2011-August/083095.html para agregar -cc = "gcc -m32" pero obtuve el mismo resultado –

+0

Vaya, lo siento, me salté lo que escribió sobre el error de registros. Probablemente no esté relacionado con el indicador de 32 bits, y tendrás que averiguarlo primero. – Jerry

0

i resolver el error "se quedó sin registros durante la asignación de registros" con --disable-asm

tal vez usted podría probarlo.