lipo?http://www.cnblogs.com/tekkaman/archive/2013/03/01/2939198.html
ar?http://www.thegeekstuff.com/2010/08/ar-command-examples/
在引用靜態庫的時候若想查看靜態庫的內容,可用以下兩個命令 lipo, ar
lipo可以解壓出universal binary文件的內容,universal binary文件為包含多個架構的二進制文件
例: ?假設 libTest.a 為一個universal binary,執行file libTest.a命令可能發現其中可能包含多種架構:
libTest.a (for architecture armv7): current ar archive random library
libTest.a (for architecture i386): current ar archive random library
libTest.a (for architecture x86_64): current ar archive random library
libTest.a (for architecture arm64): current ar archive random library
或者執行lipo -info libTest.a命令:
Architectures in the fat file: libTest.a are: armv7 i386 x86_64 arm64?
若想將某一個架構的文件取出,假設要取出 x86_64架構的文件,輸出文件名為x86_64,可執行
lipo -thin x86_64 libTest.a -output x86_64
此時會得到一個x86_64文件
如果想查看x86_64庫中含有哪些文件,可用ar命令
ar -t x86_64
如果想解壓出x86_64壓縮文件中的內容,可執行
ar -x x86_64
不過解壓出的文件都會在當前文件夾中
如果想刪除x86_64中的某個文件,假設其中包含一個TalkingData.o文件,我們想將它刪除,可執行
ar -d x86_64 TalkingData.o
如果在x86_64中增加某個文件,假設要增加一個TalkingData2.o文件,可執行
ar -r x86_64 TalkingData2.o
將x86_64重新打包成universal binary文件,繼續用lipo命令
lipo -create x86_64 -output libTest2.a
lipo命令可以將多個單架構文件打包成universal binary文件
例:有兩個單架構文件 x86_64 armv7,如果要把它們打包成一個libTest3.a,可執行
lipo -create x86_64 armv7 -output libTest2.a