前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS----创建静态库

iOS----创建静态库

作者头像
用户1941540
发布2018-05-11 11:57:41
7000
发布2018-05-11 11:57:41
举报
文章被收录于专栏:ShaoYLShaoYL

静态库

1.什么是库?

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

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

开源库
  • 公开源代码,能看到具体实现
  • 比如SDWebImage、AFNetworking
闭源库
  • 不公开源代码,是经过编译后的二进制文件,看不到具体实现
  • 主要分为:静态库、动态库

3.静态库和动态库的存在形式

①静态库:.a 和 .framework
②动态库:.dylib 和 .framework
静态库和动态库在使用上的区别
  • 静态库:链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝(左图所示)
  • 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存(右图所示)
需要注意的是:项目中如果使用了自制的动态库,不能被上传到AppStore

一,使用创建静态库

然后写静态库的核心代码,
分别选择真机和模拟器,编译就会生成静态库

用不同的模拟器生成的静态库有不同的支持手机架构、

  • 普及CPU架构
代码语言:javascript
复制
每一个手机都是属于自己的CPU,不同的CPU采用的是不同的CPU架构(指令集)
 任何一个静态库都有它支持的CPU架构,如果是跑在不支持的CPU架构上面,那么就报错

 模拟器
 iPad2/iPhone4s/iPhone5 : i386
 iPadair/iPhone5s-->iPhone6plus : x86_64

 真机
 iPhone3gs-->iPhone4s : armv7
 iPhone5/iPhone5c : armv7s

 iPhone5s-->iPhone6Plus: arm64

----- 命令行 -- 进入文件目录 ------
 查看静态库支持的架构:lipo -info 静态库
另外也可以这样设置

生成的真机使用静态库和模拟器静态库,可以合并

  • 合并静态库
  • lipo -create 静态库1 静态库2 -output 新的静态库的名称
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-09-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 静态库
    • 1.什么是库?
      • 2.根据源代码的公开情况,库可以分为2种类型
        • 3.静态库和动态库的存在形式
      • 一,使用创建静态库
        • 用不同的模拟器生成的静态库有不同的支持手机架构、
        • 生成的真机使用静态库和模拟器静态库,可以合并
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档