2013-02-23 19 views
1

在開發iOS應用,我們不斷遇到同樣的問題 - 變化的一些git的拉/合併後,我們得到Git總是會引起重複的符號_OBJC_CLASS_?

duplicate symbol _OBJC_CLASS_ 

連接錯誤

不同類別。這是可能的,如果一個刪除源文件(比如User.m如果是重複的符號_OBJC_METACLASS _ $ _用戶)從「編譯來源選項卡中的目標/建造階段),以消除這種錯誤..

完整的錯誤看起來是這樣的:

duplicate symbol _OBJC_CLASS_$_GridView in: 
    /Users/user/Library/Developer/Xcode/DerivedData/App-bjpymtdfvzxkembjocjjpbswfoul/Build/Intermediates/App.build/Debug-iphoneos/App.build/Objects-normal/armv7/GridView-9FDDD336172B4A48.o 
duplicate symbol _OBJC_METACLASS_$_GridView in: 
    /Users/user/Library/Developer/Xcode/DerivedData/App-bjpymtdfvzxkembjocjjpbswfoul/Build/Intermediates/App.build/Debug-iphoneos/App.build/Objects-normal/armv7/GridView-9FDDD336172B4A48.o 
duplicate symbol _OBJC_METACLASS_$_User in: 
    /Users/user/Library/Developer/Xcode/DerivedData/App-bjpymtdfvzxkembjocjjpbswfoul/Build/Intermediates/App.build/Debug-iphoneos/App.build/Objects-normal/armv7/User.o 
    /Users/user/Library/Developer/Xcode/DerivedData/App-bjpymtdfvzxkembjocjjpbswfoul/Build/Products/Debug-iphoneos/libRestKit.a(User.o) 
duplicate symbol _OBJC_CLASS_$_User in: 
    /Users/user/Library/Developer/Xcode/DerivedData/App-bjpymtdfvzxkembjocjjpbswfoul/Build/Intermediates/App.build/Debug-iphoneos/App.build/Objects-normal/armv7/User.o 
    /Users/user/Library/Developer/Xcode/DerivedData/App-bjpymtdfvzxkembjocjjpbswfoul/Build/Products/Debug-iphoneos/libRestKit.a(User.o) 
ld: 4 duplicate symbols for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

回答

2

這裏有幾件事情要嘗試:

  1. 檢查項目,看看是否有來自兩個不同的位置導入相同的文件看你工程|目標|構建階段(選項卡。 )|編譯源部分,並確保文件(GridView.m和User.m)不會出現兩次。該列表按照添加的日期對文件進行排序,而不是文件名,因此您可能錯過了它。

  2. 另外,它看起來像是在外部庫libRestKit.a中靜態鏈接。你或你的團隊中的其他人是否導入了RESTkit以及靜態庫?如果你有兩個,你會得到重複的符號。

  3. 最後,確保沒有人在代碼中導入的.m文件的東西,如#進口「User.m」或#進口「GridView.m」的地方 - 儘管這一次似乎不太可能,因爲你能通過刪除有問題的源文件來解決問題。

你會繼續得到這些問題,直到每個人都有同樣的構建配置,所以你應該讓每個人都承諾,並在其所有的代碼檢查。修復任何合併衝突,並讓您的本地回購正是它應該在您的系統上,然後推動。然後,讓團隊的其他成員刪除他們的回購並做一個新的克隆。希望每個人都從相同的代碼庫/項目開始,將會消除再次發生的問題,甚至可能指向問題發生的位置,以便將來避免它。

此致敬禮。

+0

合併後在構建階段中有相同的文件:/ – jomafer 2015-09-11 16:20:16