2011-08-26 92 views
1

我已经看到这个错误的几个帖子,我已经阅读了所有这些但没有成功,我会很高兴的解决方案。下面是输出编译时我收到...Xcode 4 - 失败,退出代码1错误

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

你有一个叫pointOffsetArray符号(或大意的东西?)你能提供的声明/定义的代码? – fbrereto

回答

2

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

  1. 如果他们只需要在各自的文件,与static关键字限定它们。

  2. 如果符号需要在两个文件之间“共享”,然后确保这是在只有一个地方定义。您可以通过使用extern限定符声明它(在这个其他文件中)在另一个文件中引用它。

如果你还不知道,你真的应该对externstatic预选赛是如何工作的阅读起来。

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

+0

解决了,谢谢......你描述的到底是什么... :) _pointerOffsetArray未声明(至少我没有发现它),但我已经在这两个文件被导入一个头文件 – alexpov

+0

你的意思是符号'pointerOffsetArray' **在两个不同的文件中定义**,而不是*声明*。 '的extern INT pointerOffsetArray;'是一个声明,而'诠释pointerOffsetArray;'(在全局范围内)是一种定义。 –

+0

@亚当感谢您纠正我。修复了答案。 –

0

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

此外,你可能想尝试清洗你的build文件夹与

命令+ Option + Shift键+ K

虽然这可能看起来像一条毯子的解决方案,它帮我解决一些愚蠢的编译过去的问题。祝你好运!

相关问题