有一个开源库,我想用于我的iPhone应用程序.该库是用C语言编写的,并使用Makefile编译.我想使用静态库.
如果我将.a文件添加到我的项目依赖项中,它可以很好地与模拟器一起使用,但是在定位iPhone SDK时它不会链接(当然因为.a文件是为Intel平台编译的).
我应该使用哪些GCC编译器标志来编译iPhone SDK的静态库?我认为'-arch'选项会为我提供一个iPhone架构,但没有运气.
任何帮助,将不胜感激.
对于基于autoconf的库,我会投票给Christopher Stawarz的构建脚本:
http://pseudogreen.org/blog/build_autoconfed_libs_for_iphone.html
使用此脚本,您可以使用单个命令自动执行整个过程,并轻松地为不同平台提供库二进制文件,例如iPhoneOS 2.0/2.1/2.2/2.2.1和iPhoneSimulator 2.0/2.1/2.2/2.2.1.
但是,由于Xcode 3.1的更改,$(SDKROOT)构建设置变成了一些简短的名称,如"macosx10.5","iphoneos2.2.1"或"iphonesimulator2.2.1".因此,他在文章中提到的关于在Xcode中为库和标题设置搜索路径的方式将不起作用(在Xcode 3.1中).您需要自己对路径进行硬编码.