一 前言
近日没事儿干,就在看了下关于静态库打包的相关资料(仅供入门,大神绕道),所谓库其实就是代码块的集合,可简单的分为开源库,和闭源库(顾名思义就是开源和不开源),今天学的.a属于闭源库,因为.a实际上是一个二进制集合,库还可以分为静态库和动态库,.a,framework属于静态库(自己创建的),以".dylib"或者“.framework”为文件后缀名结尾为动态库(比如系统的)额.....好像跑题了,开始我们正式的入门吧!GO~
二 入门
创建一个test_HelloWord(这里继承的是NSObject),没有编译的.a是红色的(无效,不存在的文件)
三 注意点
下面重点来了,敲黑板!!!!
architecture 字面意思 只编译活跃的架构 NO就是所有,YES是只有当前活跃的 ,这里选择所有(debug,release)
然后编译就可以了,注意不是运行,分别选择真机和模拟器(如果你不选模拟器,当然也可以)
既然拿到了库是不是就成功了呢?如果只支持一种到这里是结束了,可以下课了,但是如果想同时支持真机和模拟器需要将两个库合并
在终端使用 lipo 命令
lipo -info 库的路径 -----------查看库支持什么架构
lipo -create 要合并的库1 要合并的库2 -output合并后的静态库
例子:lipo -create lipo -create /Users/apple/libtest_HelloWord.a /Users/apple//libtest_HelloWord.a -output helloLib.a (合并文件helloLib.a)
这样合并出来的.a静态库就会支持所有的编译环境了。
之后再加上所有的.h文件就可以使用了。
四 测试
包含头文件,并调用helloWord方法。
五 总结
很简单的一个静态库。编程是一条漫长的道路,前进的路上有你会更佳精彩,谢谢大家!