ld:b / bl / blx thumb2分支超出范围

时间:2014-05-12 15:01:45

标签: ios xcode linker

我正在尝试构建一个iOS应用程序,我在调试模式下遇到错误。

ld: b/bl/blx thumb2 branch out of range (17330692 max is +/-16MB): from xxxx (0x0204CC28) to zzzz (0x030D4010) in 'yyyy' from libMyLib.a(MyObject.o) for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这仅适用于iOS调试版本。 iOS-Simulator在两种模式下都很好。

我遇到了“This page”。

这表明此问题已为Apple (rdar://16186742)所知。但是解决方法对我没什么好处。即。

The work around is to rearrange the source files in the project build phases and/or libraries in the Link Binary with Libraries section. With a few re-arrangements this problem should go away.

我花了太多时间重新安排图书馆链接顺序。这在不同的*.a文件之间移动了问题,但没有修复它。

这个问题有没有合适的解决方案?

安装了“xcode 5.0.1”。

2 个答案:

答案 0 :(得分:0)

此错误已在 Xcode 5.1.1 中修复。因此,安装最新版本可能是最简单的解决方法。

答案 1 :(得分:0)

我也遇到过这个问题,但区别在于我的项目与XCode 5.0的工作正常。

我将xcode更新为5.1.1后,问题thumb2 branch out of range发生了。

我的项目有很多CPP个静态库要链接到。这些静态库是使用编译器选项-mthumb构建的。默认情况下,xcode应使用设备选项-mthumb

我的解决方法是在构建这些静态库的调试版本时使用编译器选项-mno-thumb

我认为应用程序变得越来越慢,在调试模式下也可以接受。在发布模式下,它可以正常工作。