2010-07-26 118 views
5

你有什麼想法嗎? 爲什麼XCode編譯給出了這個結果?重複的符號XCode同一個庫的重複庫?

ld: duplicate symbol _kJSONDeserializerErrorDomain in 
    /Users/Shared/_BUILDS_/Debug-iphoneos/libLACDLibrary.a(CJSONDeserializer.o) 
    and /Users/Shared/_BUILDS_/Debug-iphoneos/libLACDLibrary.a(CJSONDeserializer.o) 

回答

1

嘿,你可能在XCode中有一個重複的引用到CJSONDeserializer,所以它被編譯和鏈接兩次。

6

我有完全相同的問題。它只抱怨arm6構建(不是arm7構建)。我找到了一個解決方法:在Build <下的其他鏈接器標誌中刪除「-all_load」 - 獲取信息< - 目標。我不確定這是否是正確的解決方法。我希望有人能夠進一步解釋,並提供正確的解決方法,如果這不是。

6

如果多次將相同的庫鏈接到項目中,則會發生此錯誤。

項目依賴關係與將庫鏈接在一起有細微的差別。有幾個項目依賴於相同的共享庫項目X是可以的;但是,請確保只有一個的項目實際上鍊接庫

+0

+ 1爲鏈接和依賴之間的區別 – lms 2012-12-02 12:41:21

0

我打這個問題有像在文件中的以下稱爲Common.h代碼:

void dumpViews(UIView* view, NSString *text, NSString *indent) { 
    // ... 
} 

通過在方法定義的前面添加靜態它清除了問題,爲我:

static void dumpViews(UIView* view, NSString *text, NSString *indent) { 
    // ... 
} 
+0

好吧,這是很長的時間,我不記得我找到的解決方法,但問題是親相同的,或在項目級別不記得。 Thx的提示 – Vaseltior 2012-03-04 00:03:41