我有一个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