我正在尝试构建一个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”。
答案 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
。
我认为应用程序变得越来越慢,在调试模式下也可以接受。在发布模式下,它可以正常工作。