Xcode 4 - 失败,退出代码1错误

时间:2011-08-26 18:09:54

标签: objective-c xcode4

我已经看过几个关于这个错误的帖子,我已经阅读了所有这些但没有成功,我会很高兴找到解决方案。这是我在编译时收到的输出...

ld: duplicate symbol _pointOffsetArray in /Users/admin/Library/Developer/Xcode/DerivedData/Display_Cubes_2-acsuoldwvhwsnjfowhhxfsmdeekc/Build/Intermediates/Display Cubes 2.build/Debug-iphonesimulator/Display Cubes 2.build/Objects-normal/i386/Display_Cubes_2ViewController.o and /Users/admin/Library/Developer/Xcode/DerivedData/Display_Cubes_2-acsuoldwvhwsnjfowhhxfsmdeekc/Build/Intermediates/Display Cubes 2.build/Debug-iphonesimulator/Display Cubes 2.build/Objects-normal/i386/Display_Cubes_2AppDelegate.o for architecture i386
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-g++-4.2 failed with exit code 1

2 个答案:

答案 0 :(得分:2)

这意味着你可能在两个不同的文件中有一个名为_pointerOffsetArray(或类似的东西)defined的全局符号。查找全局定义此符号的所有实例,如果找到两个不同的声明:

  1. 如果仅在各自的文件中需要它们,请使用static关键字对其进行限定。

  2. 如果符号需要在两个文件之间“共享”,请确保它仅在一个位置定义。您可以使用extern限定符来声明它(在此其他文件中),在其他文件中引用它。

  3. 如果您还不知道,那么您应该了解externstatic限定符的工作原理。

    在您的情况下,符号可能在Display_Cubes_2ViewController.mDisplay_Cubes_2AppDelegate.m中定义了两次(或者,您很可能在这两个定义此符号的文件中导入头文件)。

答案 1 :(得分:0)

我相信重复的符号位于Display_Cubes_2ViewControllerDisplay_Cubes_2AppDelegate中。尝试重命名它们。

此外,您可能希望尝试使用

清理构建文件夹
  

Command + Option + Shift + K

虽然这看起来像是一个全面的解决方案,但它帮助我解决了过去的一些愚蠢的编译问题。祝你好运!