如何檢測 a靜態庫中是否支援bitcode

2021-07-24 05:44:49 字數 824 閱讀 8929

蘋果在 xcode 7 中引入了 bitcode,在打包提交時,會包含 bitcode。如果專案用到了以二進位制格式發布的第三方庫,第三方庫也需要包含 bitcode 才行。如果沒有包含 bitcode,編譯時會報錯,除非手動關閉 bitcode 特性。

除了通過編譯時的報錯來判斷第三方庫是否包含 bitcode,我們也可以自己檢查。首先需要判斷 library 是否是 fat 的,可以用 lipo 命令:

lipo -info libdemo.a
其中 libdemo.a 就是我們要檢查的檔案。一般第三方庫都會發布 fat library 以支援各個 cpu 架構。

接著,如果是 fat library,需要將某個 cpu 架構的 slice 提取出來:

lipo

-thin

arm64

libdemo

.a-output

libdemo-arm64

.a

這樣,我們就將 arm64 這個 slice 提取出來了。接下來我們需要將這個 slice 裡面的目標檔案解壓出來,可以用ar命令: 

ar -x libdemo-arm64.a
假設我們解壓了 libdemo_la-util.o 這個目標檔案。最後,我們檢查目標檔案中,是否包含__bicode這個段(segment): 

otool -l libdemo_la-util.o | grep bitcode
如果找到了,說明第三方庫是支援 bitcode 的。

如何檢測MySQL中建立的索引是否生效

使用方法,在select語句前加上explain就可以了 explain select surname,first name form a,b where a.id b.id explain列的解釋 table 顯示這一行的資料是關於哪張表的。type 這是重要的列,顯示連線使用了何種型別。從最好到...

Oracle中如何用SQL檢測字段是否包括中文字元

oracle中如何用sql檢測字段是否包括中文字元 今天有乙個同事的資料遷移程式有個問題,沒有考慮中文編碼字元,由於遷移的表有幾千萬資料,但是有中文的記錄集很少,問我能否找出有中文內容的記錄數。首先我想到的是採用檢測每個位元組ascii的方式,這樣的話需要寫乙個自定義函式,然後sql中呼叫得到結果。...

Oracle中如何用SQL檢測字段是否包括中文字元

資料遷移程式有個問題,沒有考慮中文編碼字元,由於遷移的表有幾千萬資料,但是有中文的記錄集很少,問我能否找出有中文內容的記錄數。首先我想到的是採用檢測每個位元組ascii的方式,這樣的話需要寫乙個自定義函式,然後sql中呼叫得到結果。但是感覺這個方法估計很耗時,畢竟每個字元都要比較,所以沒有去實現。突...