链接器错误,当unit testing:ld:非法的文本重定位到cstring中…从_av_image_check_size在… / libavutil.a(imgutils.o)

在Xcode 4.3.2中,构build一个iPad应用程序(其中包含来自ffmpeg发行版的libavutil.a ,它构build并正确运行,但是当我尝试运行unit testing(Cmd-U)时,出现以下链接器错误:

ld:非法将文本重定位到/myPath/libavutil.a(imgutils.o)中的cstring,从/avPath/libavutil.a(imgutils.o)中的_av_image_check_size中,用于体系结构armv7 clang:错误:链接器命令失败,退出代码1(使用-v看到调用)

这是在设备上(我们目前无法在模拟器中运行它,因为我们没有包含所有库的fat二进制文件)。

为什么在运行unit testing时,它会正常构build和正常运行,而不是链接?

答案,从这里 。

是补充:

 -read_only_relocs suppress 

到链接器标志。

另一个链接解释了为什么。 解决scheme最初是在这里find的。

我通过在XCode中的编译器和链接器设置中启用位置无关代码来解决此链接器错误。

具体来说,专门用于解决类似的链接错误,使用xcode/c++11 32bit OSX链接ffmpeg的行是添加-Wl,-read_only_relocs,suppress到链接线。 这种变化不起作用。