非法文本重定位(直接引用)到(全局,弱)架构 i386

illegal text-relocoation (direct reference) to (global,weak) for architecture i386

在许多邮件列表中搜索显示此错误,但既没有通用解决方案也没有解释。

illegal text-relocoation (direct reference) to (global,weak)是什么意思,如何解决。

具体来说,我使用 this script 构建了 ffmpeg-2.5.2。在构建使用它的 XCode 测试时,出现以下错误:

ld: illegal text-relocoation (direct reference) to (global,weak)
    _ff_h264_cabac_tables in <...>/myLib.a(cabac.o)
    from _ff_h264_decode_mb_cabac in <...>/myLib.a(h264_cabac.o)
    for architecture i386

这是否需要 compiler/linker 选项来修复,或者某种代码更改?

-read_only_relocs suppress 添加到应用程序的链接器标志可以成功构建。