.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、
轉載于:https://www.cnblogs.com/panda1024/p/6115520.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 王者营地如何查看历史段位
- 下一篇: 买单吧app如何免输卡号快速添加(买单出