架构i386的1个重复符号

时间:2013-09-18 23:48:04

标签: iphone objective-c xcode

我在这里遇到了一个严重的问题,Xcode在构建它时引发了奇怪的异常 “

  

重复符号_selected in:       /用户/ mhgaber /库/开发商/ Xcode中/ DerivedData /ا项目名称管理aopcbghvorqhdwbyudzqsyhtekcu /编译/中间体/ Project-Name.build /调试-iphonesimulator / Project-Name.build /目标正常/ I386 / ClassX.o       /Users/mhgaber/Library/Developer/Xcode/DerivedData/Project-Name-aopcbghvorqhdwbyudzqsyhtekcu/Build/Intermediates/Project-Name.build/Debug-iphonesimulator/Project-Name.build/Objects-normal/i386/ClassY.o   ld:1个用于体系结构i386的重复符号   clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我搜索了很多,但我找不到任何帮助我

5 个答案:

答案 0 :(得分:15)

查看ClassXClassY的文件 - 它们包含哪些目标?基本上,_selected方法在它们中都是重复的。我猜这是一个简单的C方法,恰好在两个文件中都命名相同。尝试在其中一个文件中重命名_selected

答案 1 :(得分:4)

在我的情况下,我在头文件中声明const,在设备(iPhone 5)上构建和运行时工作正常,但是当试图模拟4S时,突然间我有了大约300个“重复符号”。

事实证明我还需要将const标记为static,问题就消失了。据推测,每次引用标题时,它都试图重新定义常量。编译器不够智能,只能使常量静态?不认为这是必要的,但我想是的。

const CGFloat kTitleAnimateDistance = 50.f;

需要:

const static CGFloat kTitleAnimateDistance = 50.f;

答案 2 :(得分:3)

有些时候您不小心导入.m文件而不是.h文件,因为这个错误来自.h文件。请检查并且如果这不是原因,请执行以下步骤

1-检查目标设置中的构建阶段。

2-转到编译源部分。

3-检查文件是否存在两次或一次。

4-如果文件存在两次,请删除一个。

5-再次建造。

答案 3 :(得分:0)

我遇到了同样的问题,@ dtrotzjr的答案给了我一个暗示可能导致它的原因。

在我的情况下,我的框架中有一个简单的C void函数(xcode抱怨为重复符号),我需要将其声明为static void

答案 4 :(得分:0)

我有同样的问题。我包括一个.h文件,其中包含许多const字符串,方法和结构。当我将它们全部更改为静态变量(除了我想要的唯一可变变量)时,它编译就很好。