首页 > 代码库 > 如何解决duplicate symbols for architecture x86_64编译错误

如何解决duplicate symbols for architecture x86_64编译错误

ld: 5 duplicate symbols (这里出现的属性就是问题出现的关键)_count for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

 /Users/zxtw/Library/Developer/Xcode/DerivedData/FightLandlord-gfkaxalabyaagtcimlrskdbtudbx/Build/Intermediates/FightLandlord.build/Debug-iphonesimulator/FightLandlord.build/Objects-normal/i386/viewController.o

一看错误信息可知是链接错误.
翻译一下,首先可以知道错误信息是在链接XXXX.o时出错的,(.o是链接文件).然后底下的ld: 5 duplicate symbols for architecture x86_64的意思是在x86-64架构下有5个重复符号(几个我们不用管),重复是个关键字,分析有以下两种情况可能会导致这种错误的发生:
一:项目中重复导入了某些文件.,这个一般在导入三方库时可能会重复导入.
解决办法:只需要在文件目录中查找到重复导入的文件,删掉即可,或者将整个三方库删除掉,重新导入,或者用cocopods导入.
二:在项目的某些地方需要#import"XXXX.h"而#import"XXXX.m".
   解决办法:认真检查项目,找到错误改正即可.

三.属性在声明的时候出现了问题

举个例子如果是上面这个样子说明问题可能出现在属性count的声明上

至于其他的原因还在默默认知中。。。

如何解决duplicate symbols for architecture x86_64编译错误