链接器错误,当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
到链接线。 这种变化不起作用。