大家好我有一个Xcode项目,每次我尝试构建项目时都会给我这个错误:
ld:xx架构armv7 Xcode项目的重复符号 clang:错误:链接器命令失败,退出代码为1 ...
我已经google了,大多数解决方案都说要摆脱重复的文件 构建阶段 - >编译项目的资源部分或在某些文件中将导入.m更改为.h。问题是编译资源列表甚至没有排序,我甚至不知道要修复哪些文件,因为我的项目中有很多文件。关于如何清理它的任何建议?
答案 0 :(得分:6)
我有时会遇到此错误,问题始终存在。我在一个类的.m中有一个静态变量,在另一个.m中有另一个同名的静态变量。显然,当有两个具有相同名称的静态变量时,编译器不喜欢它,无论是否在不同的文件中。因此,请检查是否存在任何重复的静态变量名称或#define宏。此外,它可能不是重复文件或导入两次的文件。如果导入了两个不同的文件,但每个文件都有一个具有相同名称的变量或宏,则会出现错误,因为编译器无法确定要使用哪个文件。冲突变量应该在错误中提到的文件中。希望这有帮助!
答案 1 :(得分:4)
您的项目中有某些文件可能已导入两次,尝试分析错误日志,它必须引用文件所在的位置,您必须得到错误,因为“YourViewCOntroller.O”找到了双文件,在项目导航器中搜索“YourViewCOntroller”,您需要从Xcode项目中删除这些文件然后重新构建
答案 2 :(得分:0)
如果您使用像我这样的 Cocoapods ,您可能会发现其他答案没有帮助,因为重复项是由pod文件自动生成的。
对我有用的是查看重复符号列表,例如:
重复符号_OBJC_METACLASS _ $ _ AFImageCache in:
___ /建造/产品/调试-的iPhoneOS / libPods-AFNetworking.a(的UIImageView + AFNetworking.o)
___ /建造/产品/调试-的iPhoneOS / libAFNetworking.a(的UIImageView + AFNetworking.o)
ld:214架构armv7的重复符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
然后转到您的项目/目标构建设置 - >其他链接器标志并删除对重复pod的引用(在我的情况下,AFNetworking)。
清理,再次构建它应该可以工作。
-
据我所知,这种情况可能会发生,因为其中一个pod引用了AFNetworking,导致重复。