iOS 生成静态库和动态库

来源:互联网 发布:淘宝宝贝代发 编辑:程序博客网 时间:2024/05/22 05:09

简介

什么是库?
库是程序代码的集合,是共享程序代码的一种方式

根据源代码的公开情况,库可以分为 2 种类型

开源库
公开源代码,能看到具体实现

比如 SDWebImage 、 AFNetworking

闭源库
不公开源代码,是经过编译后的二进制文件,看不到具体实现

主要分为:静态库、动态库

静态库和动态库

静态库和动态库的存在形式
静态库: .a 和 .framework

动态库: .dylib 和 .framework

静态库和动态库在使用上的区别
静态库:链接时,静态库会被完整地复制到可执行文件中, 被多次使用就有多份冗余拷贝 (左图所示)

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存

需要注意的是:

项目中如果使用了自制的动态库,不能被上传到 AppStore

1.创建Cocoa Touch Static Library
这里写图片描述
2.我就用默认生成的文件,添加一个函数
这里写图片描述
3.点击运行真机或者模拟器,生成相应的静态库 .a 或者.frame文件
这里写图片描述
4.真机和模拟器的库合并
在终端中输入:

lipo -create /Users/bob/Desktop/liblibFrame_sim.a /Users/bob/Desktop/liblibFrame.a -output test.a

分别对应两个库路径,生成合并库路径

然后生成静态库成了

生成C++动态库
1.创建空的项目
这里写图片描述

2.添加Target
这里写图片描述
3.选择Library
这里写图片描述
4.选择STL 和 Dynamic
这里写图片描述
5.在.cpp文件编写C++代码,然后运行,.dylib文件就是动态库
这里写图片描述

0 0
原创粉丝点击