ios开发之duplicate symbol for architecture x86_64 错误
错误提示
在我们开发ios中经常会遇到这样的一个错误提示:
查找原因分析
通过xcode的给我们的提示能够看到这几个关键字:duplicate和symbols,通过有道翻译duplicate是重复、复制的意思,symbols是符号的意思,因此能够想到自己的工程中可能引入了重复的东西。
解决问题
像这种错误信息,我总结了一下,有三种情况:
1.在工程中重复倒入相同的文件
一般就是,同样的第三方框架你导入了两次,或者是你导入了两个相同的类文件如下图所示,我导入了两个QKHero类文件:
错误提示:
解决方案:
有人可能会问项目中那么多文件怎么知道是哪个?别急,上图我用红方框给你圈住的就是重复导入的类文件。仔细看看你的错误信息中是否出现了你熟悉的类文件,有重复的类文件把它删掉就OK了
2.引入头文件错误
引入头文件错误就是在工程中#import”xxx.h”写成了#import”xxx.m“。就是将.h文件错引成了.m文件如下图:
错误提示:
解决方案:
找到这个文件把应用的.m文件改成.h文件就OK了
3.全局变量的命名重复
此问题就是当前的类文件中的全局变量或者枚举与引入类的文件有命名冲突,如图所示:
错误提示:
解决方案:
我在viewcontroller中和QKHero中分别定以了全局变量name,编译后出现以上的错误提示:duplicate symbol for architecture x86_64,细心的童鞋能够发现我用红色框和蓝色框分别框住了两个不同的类,viewcontroller和QKHero,对!没错,就是它们连个文件有着相同的全局变量名称。只需把它们的变量名称改一下就OK了。
以上是我遇到的问题,及解决方式,如果还有第三、第四中方案,请联系我,去修改文章。