在Xcode模拟器上运行时,iOS中的链接器错误(架构x86_64的重复符号)

时间:2016-08-06 08:15:01

标签: ios objective-c xcode

重复符号_llvm.cmdline in: / Users / inntot / Documents / navigationdrawer 2 2 2 2 2 / Pods / GoogleInterchangeUtilities / Frameworks / GoogleInterchangeUtilities.framework / GoogleInterchangeUtilities(Descriptor.pb.o) / Users / inntot / Documents / navigationdrawer 2 2 2 2 2 / Pods / GoogleSymbolUtilities / Frameworks / GoogleSymbolUtilities.framework / GoogleSymbolUtilities(overload.o)

重复符号_llvm.embedded.module in: / Users / inntot / Documents / navigationdrawer 2 2 2 2 2 / Pods / GoogleInterchangeUtilities / Frameworks / GoogleInterchangeUtilities.framework / GoogleInterchangeUtilities(Descriptor.pb.o) / Users / inntot / Documents / navigationdrawer 2 2 2 2 2 / Pods / GoogleSymbolUtilities / Frameworks / GoogleSymbolUtilities.framework / GoogleSymbolUtilities(overload.o)

2 个答案:

答案 0 :(得分:0)

duplicate symbol错误意味着项目中的某个地方正在编译,只能定义一次(如函数,const或类)的东西被定义两次,因此名称重复,因此编译器不确定使用哪个定义。

但是,这很可能不是你的问题。这些特定的symbols,即_llvm.cmdline_llvm.embedded.module通常不是用户定义的符号,通常由您正在使用的框架创建,人们通过Twitter使用框架遇到此错误Facebook也是如此。查看存在冲突符号的两个文件的路径确认了我的怀疑。这些错误是在Google Utils框架的文件中生成的。

首先,如果您对这些Google框架文件本身进行了任何更改,请撤消它们,因为您添加或更改的代码可能是问题所在。

有一些修复可能适合您。首先,这可能是一个cocoapods问题。确保您具有默认" Debug"和"发布"在你的项目中构建配置,否则cocoapods将无法很好地处理这个问题。我建议的下一个修复是不在项目中包含GoogleInterchangeUtilities框架。 GoogleSymbolUtilities实际上是为了解决其他谷歌框架中出现的错误而引入的,因此请尝试仅在项目中包含googleSymbolUtilities,而不是同时包含symbolutilities和interchangeutilities。如果不这样做,如果你可以下载这两个版本的谷歌框架,下载一个不同的版本,因为修复程序可能已经发布,或者你可以在发生此错误之前找到一个版本。

如果这些都不适合你,那么我会建议与谷歌联系,告知他们这个问题,然后紧紧抓住这个问题。

答案 1 :(得分:0)

你可以尝试

项目 - >构建设置 - >已启用位代码(将其从“是”更改为“否”)我希望它适用于您,如果不是,请检查您的容器是否更新,或者是否仍然面临问题提供有关问题的详细信息。