a靜態庫構架合成

2022-01-20 10:50:22 字數 1319 閱讀 5765

一、如果類庫生成的構架和對應裝置的構架不一致,會鏈結報錯

如果專案中使用類庫後,遇到形似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、標明不同裝置型別使用不同的類庫,自己選取

五、怎麼檢視類庫的構架呢?

使用命令列工具 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 在語音部署中,除了部署動態庫的位址 在系統環境變數 etc profile,etc ld.so.conf,home d5000 fujian cshrc中配置lib的位址 和路徑 在 中配置libjxytts 之外,還需要注意配置skyvoice.ini檔案中的libpath後邊的載入路徑...

打包靜態庫,合併靜態庫

ios靜態庫 a 和framework 合併靜態庫 1,開啟終端,輸入lipo create release iphoneos libsbjson.a release iphonesimulator libsbjson.a output combine libsbjson.a 其中release i...

靜態庫 a編譯和靜態庫 a合併

第一步 生成test.o目標檔案,使用gcc c test.c o test.o命令。第二步 使用ar將test.o打包成libtest.a靜態庫,使用ar rcs o libtest.a test.o命令 第三步 生成libtest.a靜態庫後,可以使用命令ar t libtest.a檢視libt...