【发布时间】:2011-02-04 22:06:25
【问题描述】:
我有一个 静态库(我们称之为 S),它使用一个 类别(来自 MGTwitterEngine 的 NSData+Base64)和一个 C 库 (由 ZipArchive 包裹的 MiniZip,一个 mm 文件)。
这个静态库用于一个iPhone 3.x 项目(我们称之为A)。为了能够使用 MiniZip 库,我将其文件包含在项目 A 以及静态库 S 中。如果没有,我会收到编译错误。
项目 A 在模拟器上运行良好。当我在设备上运行它时,使用类别时会出现无法识别的选择器错误。
正如这里所指出的,似乎有一个链接器错误会影响 iPhone 3.x (Categories in static library for iPhone device 3.0) 中的类别。解决方法是将 -all_load 添加到引用静态库的项目的 Other Linker Flags 中。
但是,如果我这样做,则会出现重复符号错误,因为我在项目 A 中包含了 MiniZip 库。
一种解决方法是在项目 A 中也包含类别文件。如果我这样做,项目 A 在设备中运行良好,但由于重复符号错误而无法在模拟器上构建。
我应该如何设置项目A才能使其在模拟器和设备上运行相同的配置?
【问题讨论】:
标签: iphone objective-c xcode static-libraries categories