.a靜態庫構架合成,.a靜態構架

來源:互聯網
上載者:User

.a靜態庫構架合成,.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、

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.