iphone - 为armv6和armv7构建iPhone静态库,其中包括另一个静态库

标签 iphone xcode static-libraries universal-binary fat-binaries

我有一个 Xcode 项目,它有一个“主”静态库目标,其中包含/链接到其他 Xcode 项目中的一堆其他静态库。

构建“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) 中丢失了符号。

有什么想法可以解决这个问题吗?

中号

最佳答案

我认为这根本不是答案。如果你没有两种架构,它完全可以工作。在链接中给出的示例中,可以将库 a、b 和 c 链接到一个库中,并与其链接。

Carl 遇到的问题是库中有两种不同的体系结构(arm6 和 arm7),并且链接器无法正确解析它们。

我发现了问题。据我所知,这是 libtool 中的一个错误。请参阅我的帖子以获取解决方案:

https://binaryfinery.wordpress.com/2010/06/11/universal-static-library-problem-in-iphone-sdk/

关于iphone - 为armv6和armv7构建iPhone静态库,其中包括另一个静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2456795/

相关文章:

c - 包含来自静态库的头文件

c - VC : How to split big . lib 转换为小 .lib 文件

iphone applicationWillResignActive - 获取原因

iphone - 如何使用 selectedRowInComponent 从 uialertview 中的 uipicker 返回字符串

ios - 自动布局不断拉伸(stretch) UIImageView

xcode - 来自 CGVector 的 Swift 枚举抛出错误

c - 如何将同一个函数放入两个 gcc 静态库中,使其具有不同的实例?

iphone - UI COLLECTION VIEW - 如何在 UICollectionView 上设置附件类型复选标记/披露者

iphone - 核心数据重构

objective-c - 在 Xcode 中找不到协议(protocol)声明