zoukankan      html  css  js  c++  java
  • iOS----创建静态库

    静态库

    1.什么是库?

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

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

    开源库

    • 公开源代码,能看到具体实现
    • 比如SDWebImage、AFNetworking

    闭源库

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

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

    ①静态库:.a 和 .framework

    ②动态库:.dylib 和 .framework

    静态库和动态库在使用上的区别

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

    一,使用创建静态库


    然后写静态库的核心代码,

    分别选择真机和模拟器,编译就会生成静态库

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

    • 普及CPU架构
    每一个手机都是属于自己的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 新的静态库的名称
  • 相关阅读:
    LeetCode-5. Longest Palindromic Substring(M)
    Python if else简洁写法,列表推导式,三目运算符写法
    Java GC机制
    int与integer的区别
    Java内存分配机制
    HashMap原理
    哈希表算法
    哈希
    java 三大框架面试题
    Java反射机制
  • 原文地址:https://www.cnblogs.com/ShaoYinling/p/4779788.html
Copyright © 2011-2022 走看看