iOS duplicate symbols for architecture x86_64 问题全面解析

发现这个问题后,请寻找这个问题上边的说明,如

....../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个重复符号,重复是个关键字,分析有以下两种情况可能会导致这种错误的发生:

  1. 项目中重复导入了某些文件.,这个一般在导入三方库时可能会重复导入.
    解决办法:只需要在文件目录中查找到重复导入的文件,删掉即可,或者将整个三方库删除掉,重新导入,或者用cocopods导入.
  2. 在项目的某些地方需要#import"XXXX.h"而误用了#import"XXXX.m".
    解决办法:认真检查项目,找到错误改正即可.

二.

如果第一行是XXXX.a 或者 XXXX.framwork,那么 很可能是Link Binary   With Libraries 的问题,你可以查找一下有没有灰色的引用或者是重复的引用,删除掉

三.

其他问题可以参考:

https://www.jianshu.com/p/687a9b77385e

 

 

参考链接:

https://www.jianshu.com/p/a38c62f981e2

你可能感兴趣的:(iOS)