举个简单的例子
假设我们有两个源文件:source1.c和source2.c
先将源文件编译成目标文件
#: xcrun -sdk iphonesimulator clang -c source1.c -o obj1.o -arch i386 -mios-simulator-version-min=5.0
#: xcrun -sdk iphonesimulator clang -c source2.c -o obj2.o -arch i386 -mios-simulator-version-min=5.0
然后将目标文件用libtool打包成静态库文件
#: libtool -static -o libexample.a obj1.o obj2.o
然后可以通过lipo来查看静态库的架构是不是所需要的
#: lipo -info libexample.a
input file libexample.a is not a fat file
Non-fat file: libexample.a is architecture: i386
上面只是举一个简单的例子,也可以将i386架构换成其它架构。对于复杂的工程,可能需要修改配置文件盒Makefile来进行编译,但是原理基本是一样的。