I added ffmpeg iphone port into my library and I can able to use a few of its functions like avcodec_init(),.. without any errors. But when I include this function call "avcodec_register_all" Xcode is giving error after compilation
The error message is :
*--------------- ld: ldr 12-bit displacement out of range (4276 max +/-4096) in _CFRelease$stub in _CFRelease$stub from /Users/foxit/Documents/CameraTest/build/CameraTest.build/Debug-iphoneos/CameraTest.build/Objects-normal/armv6/CameraTest
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
*-------------
Does anyone know whats wrong with this ?
Regards,
Raghu
I was able to get rid of the error by unselecting the "Compile For Thumb" compiler option.
So here are my settings:
I did add -no_order_inits to the linker options but that did not work for me.
If you select a deployment target of 3.0 then you also will not get the error.
BTW, I am also using the FFMPEG and libMMS libraries.
Same as this problem?
Suggestion there is:
This problem exists in iPhone OS 3.1 or later while building in Xcode. Try re-arringing the link order of the libraries in your target's link library phase. I have discussed this issue in: http://www.galloway.me.uk/2009/12/ldr-12-bit-displacement-out-of-range/
There is an inherent problem in iPhone SDK 3.1 and later. Will have to wait until Apple fixes it or we will have to do some trail and error changes.
In our case, just re-ordering libavfilter and libavcodec to the last would simply work.
Since I am using a CMake generated XCode project I don't have all the flexibility I would like in re-ordering my link lines. I stared at the ld(1) man page for a while and found this:
-no_order_inits
Adding this to the link line made the error go away.
For me on 4.2 and using ffmpeg, solution was to specify "Optimized (armv7)" in field "Architectures" instead "Standard (armv6 armv7)" if this can help you...
I've had this problem in
MonoTouch
, and posted a solution for it here: http://microsoft2apple.com/2010/09/30/solved-ldr-12-bit-displacement-out-of-range/