0

I've been trying to compile the ffmpeg libraries for IOS. I can get it to work if I use --disable-asm, but for performance I'd like to build with them enabled.

This is one of many configure commands I've used.

./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

It compiles fine, but when I try to link against it in my project I get :

ld: in /ffmpeg/libavcodec/libavcodec.a(simple_idct_armv5te.o), in section _TEXT,_text reloc 0: R_ABS reloc but no absolute symbol at target address for architecture armv7

Am I missing some key option? I've tried using the 1.0 build and the latest git version of ffmpeg.

Oliver Hume
  • 489
  • 1
  • 7
  • 19
  • Are you doing this on Mountain lion, mountain lion has lots of issues with the asm, if can use lion your better off. And I would suggest using 5.1 rather than 6.0. – Michelle Cannon Dec 19 '12 at 16:51
  • just a note: you are aware this cant go on the appstore or even cydia – Daij-Djan Dec 28 '12 at 11:47
  • See note about license issue with ffmpeg here: http://stackoverflow.com/questions/15832754/trying-to-compile-the-ffmpeg-libraries-for-iphoneos-platform-with-armv6-and-arv7/17202184#17202184 – MoDJ Jun 19 '13 at 22:06

1 Answers1

0

I ran into the same problem. The solution for me was to switch to the newer gas-preprocessor.pl which can be found here: https://github.com/mansr/gas-preprocessor

Just install this in place of the old one you're currently using.