Xcode 4.4中的链接器错误

从Xcode 4.3升级到Xcode 4.4后,我开始在构建iPhone应用程序时遇到以下错误:

ld: section __objc_const (address=0x0010C720, size=7265990088) would make the output executable exceed available address range for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

内存地址和编号对我来说并不意味着什么,但是它们在整洁和重建过程中保持一致。 我不清楚如何找到他们可能引用的内容。

该代码在XCode 4.3中仍然可以编译。

有没有人有任何想法我可以追查是什么导致这个错误?


我有同样的错误。 幸运的是,我可以回想起它出现的时刻,回滚并比较修订。 这是Google Analytics GAI类中的静态方法。 我不知道为什么会发生这种情况,因为项目中的其他类别工作正常,但希望它也可以帮助别人。


您可以在链接图文件中看到所有符号的大小(包括全局变量):

  • 在目标的Build Settings中,转到“Linking”部分并将“Write Link Map File”设置为“Yes”。
  • 构建程序。 链接器将失败,但链接映射文件被写入。
  • 找到链接映射文件。 链接器的日志输出显示参数-map -Xlinker -/path/to/linkmapfile.txt 。 它位于项目的DerivedData文件夹中。
  • 链接图文件显示所有符号的地址(第一列)和大小(第二列)。 对于全局变量,它显示名称和它们所在的目标文件。
  • 您应该在链接映射文件中找到错误消息的地址(在您的示例中为0x0010C720)。
  • 您可以检查链接地图文件中是否有大尺寸的其他符号。
  • 所以这可能有助于缩小问题的范围。

    链接地址: http://www.djcxy.com/p/11091.html

    上一篇: Linker error in Xcode 4.4

    下一篇: cmpxchg for WORD faster than for BYTE