架构i386的6个重复符号

时间:2013-03-20 10:25:14

标签: iphone ios objective-c compiler-errors sbjson

duplicate symbol _OBJC_METACLASS_$_SBJsonParser in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonParser.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonParser.o)
duplicate symbol _OBJC_CLASS_$_SBJsonParser in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonParser.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonParser.o)
duplicate symbol _OBJC_IVAR_$_SBJsonWriter.sortKeys in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
duplicate symbol _OBJC_IVAR_$_SBJsonWriter.humanReadable in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
duplicate symbol _OBJC_METACLASS_$_SBJsonWriter in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
duplicate symbol _OBJC_CLASS_$_SBJsonWriter in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
ld: 6 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

请告诉我如何解决这个问题?

9 个答案:

答案 0 :(得分:21)

正如您所见,链接器抱怨SBJsonWriterSBJsonParser都在libfacebook_ios_sdk.a中定义,并作为项目中的单个文件。

除了从目标中删除单个文件之外,您无法真正解决问题。

问题是libfacebook_ios_sdk.a的开发人员认为使用json框架是个好主意(不关心与主机应用程序中使用的代码的冲突)。这是iOS上SDK的常见问题。

答案 1 :(得分:11)

我已经解决了问题,请按照步骤进行。

  1. 转到应用程序的目标
  2. 编译来源
  3. 使用( - )。enter image description here
  4. 删除重复文件

答案 2 :(得分:9)

问题很可能是由于包含标题时的拼写错误。检查是否包含头文件(.h)而不是实现文件(.m)。

这对我来说是个问题

答案 3 :(得分:7)

如果没有其他方法可以帮助的话,那就是使用文本编辑器打开你的.pbxcodeproj文件,然后使用grep打开Xcode中失败日志中出现的类的名称。可能有两个重复的行 - 删除其中一行。

答案 4 :(得分:2)

您必须在项目中添加两次SBJsonParser.h / .m。

答案 5 :(得分:0)

看起来你可能有两次.h / .m文件包括两次,比如包括一些第三方API /库两次,或者你创建了一个新文件,其名称与项目中已有的文件完全相同。检查项目文件夹中是否有任何重复的文件。

答案 6 :(得分:0)

你也可以:

  1. 复制冲突.h的{​​{1}}个文件。
  2. pods
  3. 中删除这些冲突pods
  4. 将这些podfile个文件复制到项目中。
  5. 重置.h #import</.h>个已复制的".h"个文件。
  6. 制作.h和bulid。
  7. 诀窍是您的代码没有错误,因为导入了pod install个文件,但.h个文件正确链接。

答案 7 :(得分:0)

如果您导入任何.h文件两次,它就会发生。

例如 如果您导入任何.h文件.... ViewController.h和.... ViewController.m文件它发生。

答案 8 :(得分:0)

如果最重要的是没有解决您的问题,请检查您是否在两个不同的文件中声明一个常量(我的意思是检查您是否有两个相同的(.h&amp; .m)文件。重复的文件不应该在那里在你的项目中。