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
轉載請註明出處,謝謝~