我有一個Xcode項目,它有一個「主」靜態庫目標,包括/鏈接到其他Xcode項目的一堆其他靜態庫。構建armv6和armv7的iPhone靜態庫,其中包含另一個靜態庫
構建「Optimized(armv6 armv7)」的主庫目標時,在CreateUniversalBinary步驟的最後階段發生錯誤。對於由主庫包括在庫中的每個的.o文件時,報告了以下錯誤(例如,FBConnectGlobal.o文件):
warning for architecture: armv6 same member name (FBConnectGlobal.o)
in output file used for input files: /Developer_Beta/Builds/MTToolbox/MTToolbox.build/Debug-iphoneos/MTToolbox.build/Objects-normal/armv6/libMTToolbox.a(FBConnectGlobal.o)
and: /Developer_Beta/Builds/MTToolbox/MTToolbox.build/Debug-iphoneos/MTToolbox.build/Objects-normal/armv7/libMTToolbox.a(FBConnectGlobal.o)
due to use of basename, truncation and blank padding
在結束時,Xcode告訴編譯成功。但是,在應用程序項目中使用最終的靜態庫時,它不會生成,因爲它在構建的一部分(armv6)中找到重複的符號,並且在構建的其他部分(armv7)中未找到符號。
任何想法如何解決這個問題?
中號
不要將庫建立到其他庫中 - 這是混淆,重複符號錯誤和難以調試結果的祕訣。看看這個問題:http://stackoverflow.com/questions/2300867/how-can-i-avoid-duplicate-symbol-errors-in-xcode-with-shared-static-libraries/2300873#2300873 – 2010-03-16 17:53:56
卡爾,謝謝。也許你可以將它作爲我的問題的答案而不是評論,所以我可以將其標記爲已回答。 – 2010-03-17 19:26:23