Xcode 4.4中的链接器错误

The*_*ist 7 objective-c ios xcode4.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中编译.

有没有人知道如何追踪导致此错误的原因?

Mar*_*n R 1

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

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

所以也许这有助于缩小问题范围。