我在这里遇到了一个严重的问题,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查看调用)
我搜索了很多,但我找不到任何帮助我
答案 0 :(得分:15)
查看ClassX
和ClassY
的文件 - 它们包含哪些目标?基本上,_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字符串,方法和结构。当我将它们全部更改为静态变量(除了我想要的唯一可变变量)时,它编译就很好。