我已经看过几个关于这个错误的帖子,我已经阅读了所有这些但没有成功,我会很高兴找到解决方案。这是我在编译时收到的输出...
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
答案 0 :(得分:2)
这意味着你可能在两个不同的文件中有一个名为_pointerOffsetArray(或类似的东西)defined的全局符号。查找全局定义此符号的所有实例,如果找到两个不同的声明:
如果仅在各自的文件中需要它们,请使用static
关键字对其进行限定。
如果符号需要在两个文件之间“共享”,请确保它仅在一个位置定义。您可以使用extern
限定符来声明它(在此其他文件中),在其他文件中引用它。
如果您还不知道,那么您应该了解extern
和static
限定符的工作原理。
在您的情况下,符号可能在Display_Cubes_2ViewController.m
或Display_Cubes_2AppDelegate.m
中定义了两次(或者,您很可能在这两个定义此符号的文件中导入头文件)。
答案 1 :(得分:0)
我相信重复的符号位于Display_Cubes_2ViewController
和Display_Cubes_2AppDelegate
中。尝试重命名它们。
此外,您可能希望尝试使用
清理构建文件夹Command + Option + Shift + K
虽然这看起来像是一个全面的解决方案,但它帮助我解决了过去的一些愚蠢的编译问题。祝你好运!