为IOS编译ffmpeg(R_ABS reloc错误)

时间:2012-12-19 01:57:23

标签: iphone ios compiler-construction linker ffmpeg

我一直在尝试为IOS编译ffmpeg库。如果我使用--disable-asm,我可以让它工作,但是为了性能,我想在启用它们的情况下构建它。

这是我使用的许多配置命令之一。

./configure --prefix=armv7 --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-avresample --enable-cross-compile --sysroot="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk" --target-os=darwin --cc="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc" --extra-cflags="-arch armv7 -miphoneos-version-min=5.0" --extra-ldflags="-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -miphoneos-version-min=6.0" --arch=arm --cpu=cortex-a9 --disable-everything --enable-pic --enable-static --disable-shared

它编译得很好,但当我尝试在我的项目中链接它时,我得到:

ld:在/ffmpeg/libavcodec/libavcodec.a(simple_idct_armv5te.o)中,在_ TEXT, _text reloc 0:R_ABS reloc但在架构armv7的目标地址没有绝对符号

我错过了一些关键选项吗?我已经尝试使用1.0版本和最新的gf版本的ffmpeg。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我的解决方案是切换到更新的gas-preprocessor.pl,可以在这里找到:https://github.com/mansr/gas-preprocessor

只需安装此代替您当前使用的旧版本即可。