当我编译我的项目时,我有这个错误:
ld: duplicate symbol _OBJC_CLASS_$_DNCloseButton in /Users/.../Library/Developer/Xcode/DerivedData/...Objects-normal/i386/DNCloseButton-7045D069F03DAA13.o for architecture i386
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang++ failed with exit code 1
我知道问题是关于班级DNCloseButton
,但我不知道如何解决它?谢谢你的回答。
答案 0 :(得分:7)
确保您只在头文件(.h)中声明了一次界面,并导入了包含#import
而不是#include
的头文件。
有时XCode会稍微抬起一点并在链接器阶段将同一文件链接两次。为了这个:
希望这有帮助!
答案 1 :(得分:6)
如果源文件在Compile Sources Build Phase中包含两次,则会发生这种情况。
要在Xcode 4中进行检查:
如果该类的源文件在Compile Sources列表中出现两次,请删除其中一个条目。
答案 2 :(得分:5)
如果偶然#import
.m
文件而不是.h
文件,您可能也会收到此错误。
答案 3 :(得分:1)
在下列情况下可能会发生这种情况。
您已将相同的类实现放入两个不同的文件中;
你实际上只有这个类的一个实现,但是你也在你的项目中链接一个框架或库,其中包含一个名称与你的名字完全相同的类。
尝试在整个项目中查找您的课程,并确保项目中只有一个副本可用。