iphone - 为iOS构建静态库

标签 iphone ios ipad

我已经为iOS建立了一个静态库。我的问题是我在库中以ASIHTTPRequest为例,当我将库添加到已经使用ASIHTTPRequest库的应用程序中时,会遇到编译器错误,直到从使用我的库的项目中删除所有ASIHTTPRequest .m文件为止。

有没有解决的办法 ?例如,例如,构建静态库并使其需要ASIHTTP库,而不是将其添加到项目中?

编辑:

这是我“存档”项目后收到的错误的示例。

ld: duplicate symbol _main in /Users/tj/Library/Developer/Xcode/DerivedData/db-afhqjyfitjcnbqdmywezdvmryvyp/ArchiveIntermediates/db/IntermediateBuildFilesPath/db.build/Release-iphoneos/db.build/Objects-normal/armv6/fmdb.o and /Users/tj/Library/Developer/Xcode/DerivedData/db-afhqjyfitjcnbqdmywezdvmryvyp/ArchiveIntermediates/db/IntermediateBuildFilesPath/db.build/Release-iphoneos/db.build/Objects-normal/armv6/main.o for architecture armv6
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

特劳斯蒂

最佳答案

我建议将ASIHTTPRequest添加为自己的静态库,方法是将其作为依赖项添加到静态库的项目中。本质上,您要做的是创建一个xcode项目,将ASIHTTPRequest打包到其中,关闭该项目,然后将ASIHTTPRequest项目文件拖放到静态库项目的文件导航器中。这会将其添加为依赖项项目,并自动将其构建为静态库并针对该项目链接您的项目。

在一个应用程序项目中使用静态库时,请执行相同的操作。将静态库作为依赖项项目进行管理比较容易,而依赖项项目又将ASIHTTPRequest作为另一级依赖项。这样,您的两个项目都将能够看到其标题并进行链接,并且不会出现重复的符号问题。

如果您试图将静态库发布给其他开发人员,则情况将更加困难...

关于iphone - 为iOS构建静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6129129/

相关文章:

iphone - 关于覆盖 init 函数的几个问题

iphone - NSMutableArray removeAllObjects 导致崩溃

iphone - 部分剪辑 subview

ios - iPad应用程序: Customize the default navigation controller

iOS 使用 CGAffineTransform Make Translation 从一个 View 的中心到另一个 View 的中心绘制虚线动画第二个 View

ipad - 如何重定向从 iPad 发出的 HTTP 请求?

iphone - 从 safari 中的网络应用程序中的链接打开 iphone 应用程序

iphone - 如何修复启用 ARC 的 iPhone 项目中的内存泄漏?

ios - 使用 AVAudioPlayer 添加 iPod 均衡器效果

iOS 开发测试要求