2013-03-20 95 views
10
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) 

請告訴我如何解決這個問題?6個建築物重複符號i386

+0

你給你的項目中的控件或者變量賦予了相同的名字嗎?如果不是,那麼刪除你的派生數據,然後清理並構建你的項目 – Dhruvik 2013-03-20 10:30:24

+0

試試這個:http://stackoverflow.com/a/42089897/3024579 – Alok 2017-02-07 12:42:26

回答

21

正如您所看到的,鏈接器抱怨SBJsonWriterSBJsonParser都是在libfacebook_ios_sdk.a中定義的,並且作爲項目中的單個文件。

除了從您的目標中移除單個文件外,您無法真正解決問題。

問題是,libfacebook_ios_sdk.a的開發人員認爲使用json框架(不關心與主機應用程序中使用的代碼衝突)是一個好主意。這是iOS上SDK的常見問題。

+0

但我在我的項目中使用SBJsonWriter和SBJsonParser。 – 2013-03-20 11:21:09

+0

@AliMaisam我瞭解你的衝突,但那裏沒有適當的解決方案。您可以重命名您的SBJsonParser和SBJsonWriter類以避免衝突。 – 2013-03-20 11:30:32

+0

對不起,但我沒有得到你想要解釋的100%。你能解釋一下嗎? – 2013-03-20 11:37:52

2

您必須在項目中添加兩次SBJsonParser.h/.m。

+1

誰沒有提供這個答案而沒有提供理由?這是一個可能的解決方案。 – 2013-03-20 10:46:59

+1

Stackoverflow應該沒有理由地考慮你不能downvote,人們很不情願downvote任何答案只是爲了它。他們不欣賞好回答WERS。 – iphonic 2013-03-20 10:49:48

+1

這就是我想知道的羅漢。 :) – Kunal 2013-03-20 10:50:06

0

看起來你可能有一些.h/.m文件包含兩次,比如包含了一些第三方API /庫兩次,或者你創建了一些新文件,其名稱與項目中已有的文件完全相同。檢查你的項目文件夾中是否有任何重複的文件。

7

如果沒有別的辦法,通常會有幫助的是,用文本編輯器打開你的.pbxcodeproj文件,用grep找出Xcode中失敗日誌中出現的類的名稱。可能有兩個重複的行 - 刪除其中的一個。

+0

+1爲一個好的替代解決方案 – 2013-06-27 02:13:22

9

該問題很可能是由於包含頭部時出現錯字。檢查以便包含頭文件(.h),而不是實現文件(.m)。

這是這個問題對我來說

+0

感謝您的建議。 – 2014-07-25 06:16:07

+0

你真是太神奇了.... – 2015-10-05 09:19:54

0

你還可以:衝突pods

  1. 複製.h文件。
  2. podfile中刪除這些衝突pods
  3. 將這些.h文件複製到項目中。
  4. 重命名爲#import</.h>".h"複製.h文件。
  5. 使pod install和bulid。

關鍵是你的代碼有沒有錯誤,因爲.h文件導入,但是.o文件鏈接正確。

11

我已經解決了問題,請按照步驟操作。

  1. 轉到應用程序的目標
  2. 編譯源代碼
  3. 使用刪除重複的文件( - )。 enter image description here
+0

這是我的問題!不知道爲什麼,但從應用程序目標的構建階段中的編譯源文件中刪除該文件解決了問題。 – Ninja 2015-09-25 21:43:40

0

如果您導入任何.h文件兩次它發生。

例如 如果您導入任何.h文件既.... ViewController.h和.... ViewController.m文件它發生。

0

如果上述所有都不能解決您的問題,請檢查您是否在兩個不同的文件中聲明常量(我的意思是檢查是否有兩個相同的文件(.h & .m)。重複的文件不應該存在於您的項目