ZBar 支持i386 armv6 armv7 armv7s x86_64 arm64

ZBar 支持i386 armv6 armv7 armv7s x86_64 arm64


mp3轉碼靜態庫libmp3lame.a,成功加入arm64支持後,

順便把之前記錄的二維碼靜態庫libzbar.a也做一個整理。


從網上下載別人支持不夠全面的靜態庫,查了下分離和合並靜態庫的方法,整理如下:


1. 得到兩個支持部分cpu架構的靜態庫,放在同一個目錄下,libzbar-i386-armv6-armv7.a, libzbar-armv7-armv7s-x86_64-arm64.a


2. 兩個庫都支持armv7架構,直接用lipo -create  libzbar* -output libzar.a 命令會失敗,需要先分離出i386, armv6,然後再繼續合併


3. 先從libzbar-i386-armv6-armv7.a種分離出i386架構(這個只要一個命令得到結果),命令如下:

shutekiMacBook-Pro:libzbar pig$ lipo -extract_family i386 -output libzbar-i386.a libzbar-i386-armv6-armv7.a 

shutekiMacBook-Pro:libzbar pig$ ls -lrt

total 19608

-rw-r--r--  1 pig  staff  3038988  6  7 23:27 libzbar-i386-armv6-armv7.a

-rw-r--r--  1 pig  staff  4962816  6  7 23:28 libzbar-armv7-armv7s-x86_64-arm64.a

-rw-r--r--  1 pig  staff   993000  6  7 23:33 libzbar-armv7.a

-rw-r--r--  1 pig  staff  1037504  6  7 23:37 libzbar-i386.a

shutekiMacBook-Pro:libzbar pig$ lipo -info libzbar-i386.a 

input file libzbar-i386.a is not a fat file

Non-fat file: libzbar-i386.a is architecture: i386

shutekiMacBook-Pro:libzbar pig$


4. 從libzbar-i386-armv6-armv7.a種分離出armv6架構(這個需要多次分離),命令如下:

shutekiMacBook-Pro:libzbar pig$  lipo -extract_family armv6 -output libzbar-armv6-armv7.a libzbar-i386-armv6-armv7.a

shutekiMacBook-Pro:libzbar pig$ 

shutekiMacBook-Pro:libzbar pig$ ls -lrt

total 23520

-rw-r--r--  1 pig  staff  3038988  6  7 23:27 libzbar-i386-armv6-armv7.a

-rw-r--r--  1 pig  staff  4962816  6  7 23:28 libzbar-armv7-armv7s-x86_64-arm64.a

-rw-r--r--  1 pig  staff  1037504  6  7 23:37 libzbar-i386.a

-rw-r--r--  1 pig  staff  2001464  6  7 23:38 libzbar-armv6-armv7.a

shutekiMacBook-Pro:libzbar pig$ 

shutekiMacBook-Pro:libzbar pig$ lipo -info libzbar-armv6-armv7.a   (這裏查看靜態庫都信息,實際分離出來的.a文件同時包含armv6和armv7,所以我命名中也注意標註了)

Architectures in the fat file: libzbar-armv6.a are: armv6 armv7 

shutekiMacBook-Pro:libzbar pig$ 


5. 在步驟4的基礎上,從libzbar-armv6-armv7.a種分離出armv6,命令如下:

shutekiMacBook-Pro:libzbar pig$ lipo libzbar-armv6-armv7.a -thin armv6 -output libzbar-armv6.a

shutekiMacBook-Pro:libzbar pig$ 

shutekiMacBook-Pro:libzbar pig$ ls -lrt

total 21584

-rw-r--r--  1 pig  staff  3038988  6  7 23:27 libzbar-i386-armv6-armv7.a

-rw-r--r--  1 pig  staff  4962816  6  7 23:28 libzbar-armv7-armv7s-x86_64-arm64.a

-rw-r--r--  1 pig  staff   993000  6  7 23:33 libzbar-armv6-armv7.a

-rw-r--r--  1 pig  staff  1037504  6  7 23:37 libzbar-i386.a

-rw-r--r--  1 pig  staff  1008416  6  7 23:38 libzbar-armv6.a


6. 同步驟5,從libzbar-armv6-armv7.a種分離出armv7,命令如下:

shutekiMacBook-Pro:libzbar pig$ lipo libzbar-armv6-armv7.a -thin armv7 -output libzbar-armv7.a


7. 合併i386,armv6和libzbar-armv7-armv7s-x86_64-arm64.a(爲了方便執行create命令,我已經把不需要的.a文件做了重命名),合併命令如下:

shutekiMacBook-Pro:libzbar pig$ ls -lrt

total 21584

-rw-r--r--  1 pig  staff  3038988  6  7 23:27 src-libzbar-i386-armv6-armv7.a

-rw-r--r--  1 pig  staff  4962816  6  7 23:28 libzbar-armv7-armv7s-x86_64-arm64.a

-rw-r--r--  1 pig  staff   993000  6  7 23:33 src-libzbar-armv7.a

-rw-r--r--  1 pig  staff  1037504  6  7 23:37 libzbar-i386.a

-rw-r--r--  1 pig  staff  1008416  6  7 23:38 libzbar-armv6.a

shutekiMacBook-Pro:libzbar pig$ 

shutekiMacBook-Pro:libzbar pig$ lipo -create libzbar-* -output libzbar.a


8. 大功告成,趕緊查看下合併後的cpu架構支持:

shutekiMacBook-Pro:libzbar pig$ lipo -info libzbar.a 

Architectures in the fat file: libzbar.a are: armv6 armv7 armv7s x86_64 i386 arm64 


下載地址:http://download.csdn.net/detail/zhu410289616/7464153


轉載請註明出處,謝謝~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章