无法在Mac OS X上编译兼容i386的ffmpeg dylibs

时间:2011-11-22 02:36:53

标签: macos ffmpeg x86 osx-lion 32bit-64bit

我正在运行64位Lion,但我需要编译一个32位版本的ffmpeg,因为我使用的另一个库只能用作32位。我尝试了许多不同的配置,但它们都给了我错误。这是我尝试过的:

  

./ 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”--target-os = darwin --enable-cross-compile

     

./ 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-shared --disable-outdev = sdl --disable-bzlib --disable-libfreetype --disable-libopenjpeg --enable-zlib --enable-runtime-cpudetect --arch = x86_32

我或者在make期间遇到“寄存器分配期间寄存器用完”错误或者gcc抱怨交叉编译没有激活。

4 个答案:

答案 0 :(得分:11)

我能够通过使用clang而不是gcc来使用ffmpeg build 08d2cee4。所以这里有配置线工作:

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

感谢Carl on libav-user!

以下是我的帖子以防万一:http://ffmpeg.org/pipermail/libav-user/2011-December/001013.html

答案 1 :(得分:1)

您可以尝试使用-m32标志,该标志告诉gcc仅编译为32位。

答案 2 :(得分:0)

我会猜测 - 是建筑物:libavcodec/h264_cabac.o

尝试添加-fomit-frame-pointer。 IIRC,有一些gcc内联汇编无法获得足够的寄存器。此选项释放%ebp以用作通用寄存器。

答案 3 :(得分:0)

我使用--disable-asm

解决了“寄存器分配期间寄存器耗尽”的错误

也许你可以尝试一下。