如何解决为iOS构建静态库
| 我已经为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作为另一级依赖项。这样,您的两个项目都将能够看到其标题,并与之链接,并且不会出现重复的符号问题。
如果您尝试将静态库发布给其他开发人员,则情况将更加困难...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。