单元测试时链接器错误:ld:非法文本重定位到...中的cstring ...来自.../libavutil.a中的_av_image_check_size(imgutils.o)

use*_*742 5 unit-testing linker-errors libav ios xcode4.3

在Xcode 4.3.2中,构建一个包含libavutil.affmpeg发行版的iPad应用程序,它构建并正确运行但是当我尝试运行单元测试(Cmd-U)时,我收到以下链接器错误:

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

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

为什么它会正常构建和运行,但在运行单元测试时却没有链接?

use*_*742 10

答案,从这里开始.

是添加:

-read_only_relocs suppress
Run Code Online (Sandbox Code Playgroud)

到链接器标志.

另一个链接解释了原因.解决方案最初在这里找到.

  • 这不再有效.该标志在x86_64上不受支持,并且与BYTECODE = YES不兼容. (7认同)