当我们运行程序 、修改代码、或者添加第三方或者SDK的时候经常会出现下面的问题
ld:2 duplicate symbols for architecture arm64 clang:error:linker commang failed with exit ...
ld:2 duplicate symbols for architecture arm67 clang:error:linker commang failed with exit ...
好多人看到这两个报错信息直接懵了,因为从错误上根本无从下手啊,其实并不是无从下手,
主要看duplicate这个单词重复的意思,所以很有可能就是出现了重复的类,所以解决方案就要 从这个方面下手
解决方案:
第一个,就是类有重复的,你的本地项目中存在相同的类,有的人可能会说这么多类怎么找啊,那我们可以在错误提示上找
我们的报错信息全面的是下面这个样
ld: warning: directory not found for option '-L/Users/wuhaoran/Documents/原始积累/支付/银联/2.'
ld: warning: directory not found for option '-L开发包_前台_UPPayPluginEx-SND-2.1.4/upmp_iphone/demo/UPPayDemo/UPPayDemo'
ld: warning: directory not found for option '-L/Volumes/Mac_HD500/pmb/paibao-ios/SaleTreasure/lib/Uppay'
duplicate symbol _kDataAuctionId in:
/Users/zhubao/Library/Developer/Xcode/DerivedData/SaleTreasure-bbrrvvyybmkivkbnnrnqwfyjnfmh/Build/Intermediates/SaleTreasure.build/Debug-iphoneos/SaleTreasure.build/Objects-normal/armv7/RaiseListModel.o
/Users/zhubao/Library/Developer/Xcode/DerivedData/SaleTreasure-bbrrvvyybmkivkbnnrnqwfyjnfmh/Build/Intermediates/SaleTreasure.build/Debug-iphoneos/SaleTreasure.build/Objects-normal/armv7/SelesOrderModel.o
ld: 1 duplicate symbol for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
所以警告的直接不用管,直接看红色的类就可以,这两个类出现了问题,很有可能存在相同文件,所以只要去除重复的保留一个即可
第二种,就是搜索后发现 两个.m 文件中 有 两个重复const 的变量 修改下就可以了,这个其实并不多见,而且也不容易出错,就是有上面的两个都执行了同样的变量或者更方法,就会出现问题。这个可以说几乎遇不到,但是本人遇到了,跟大家说一下
第三种,这个是新手或者粗心的人容易犯得错误,就是引入类的时候错吧.h 引成了.m 文件也会出现上面的错误。
综上所处,解决这个问题,很大可能就是出现重复文件造成的,大家只要按照上面的错误提示就可以解决