发现这个问题后,请寻找这个问题上边的说明,如
....../Objects-normal/x86_64/XXXX.o
ld: 5 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
一.
第一行,指明了是XXXX.o 文件的问题,一看错误信息可知是链接错误.
翻译一下,首先可以知道错误信息是在链接XXXX.o
时出错的.然后底下的ld: 5 duplicate symbols for architecture x86_64
的意思是在x86-64
架构下有5个重复符号,重复是个关键字,分析有以下两种情况可能会导致这种错误的发生:
- 项目中重复导入了某些文件.,这个一般在导入三方库时可能会重复导入.
解决办法:只需要在文件目录中查找到重复导入的文件,删掉即可,或者将整个三方库删除掉,重新导入,或者用cocopods
导入. - 在项目的某些地方需要
#import"XXXX.h"
而误用了#import"XXXX.m"
.
解决办法:认真检查项目,找到错误改正即可.
二.
如果第一行是XXXX.a 或者 XXXX.framwork,那么 很可能是Link Binary With Libraries 的问题,你可以查找一下有没有灰色的引用或者是重复的引用,删除掉
三.
其他问题可以参考:
https://www.jianshu.com/p/687a9b77385e
参考链接: