zoukankan      html  css  js  c++  java
  • .a静态库构架合成

    一、如果类库生成的构架和对应设备的构架不一致,会链接报错

    如果项目中使用类库后,遇到形似Undefined symbols for architecture x86_64(x86_64架构下有未定义的符号)的错误,则为链接错误,该错误只有两种情况:

    1> 项目中没有导入指定的类库

    2> 项目中使用的类库架构(类库生成的设备)和运行项目的设备不同

    二、CPU构架:

    1、精简指令集构架:主要用于移动设备,手机/平板,代表厂商:ARM、IBM

    2、复杂指令集构架:主要用于PC,代表厂商:Intel、AMD

    三、iOS中涉及的架构:

    1、真机:

    armv7:               iPhone4s

    armv7s:             iPhone5、iPhone5C

    arm64/armv8:    iPhone5s及以上

    2、模拟器:

    i386:                  iPhone4s、iPhone5、iPhone5C

    x86_64:             iPhone5s及以上

    四、开发中,使用类库时:

    1、标明不同设备类型使用不同的类库,自己选取

    2、合成构架(即把5个.a文件合成一个.a,无需考虑设备类型问题,缺点:APP包会比较大)

    五、怎么查看类库的构架呢?

    使用命令行工具 lipo -info .a的文件路径

    六、那怎么合成构架呢?

    1、使用命令行工具 lipo -create 类库文件1路径  类库文件2路径  -output  生成的类库路径

    示例:lipo -create  XX/XX/XX.a  KK/KK/KK.a  -output  ZZ/ZZ/ZZ.a

    如果:ZZ/ZZ/ZZ.a  直接写ZZ.a,生成的类库在家目录下

    2、对Xcode进行设置,自动生成合成构架的类库文件

    但是:1、设置后,只能生成真机或模拟器的类库

            2、生成真机的合成架构时,默认没有armv7s类型的 -> 修改设置来添加armv7s类库

        3、再使用方式1对真机和模拟器的构架类库进行合成

        4、比方式1的好处:方法1需要手动合成4次,方法2只需要手动合成1次

    添加armv7s类库设置:

    1、

    2、

  • 相关阅读:
    Java SE——线程介绍
    Vue
    Spring asm
    spring 自定义标签的实现
    Spring InitializingBean 接口以及Aware接口实现的原理
    值传递与引用传递
    redis学习
    ssm多数据源配置
    redis 启动
    json的设置
  • 原文地址:https://www.cnblogs.com/panda1024/p/6115520.html
Copyright © 2011-2022 走看看