iOS常用靜態庫操作命令(解決靜態庫衝突問題)

  • 合併模擬器庫文件和真機庫文件
    lipo -create -output lib.a lib-armv6.a lib-i386.a

    其中lib.a是合併後的輸出文件,lib-armv6.a和lib-i386.a分別對應真機靜態庫和模擬器靜態庫文件。

  • 查看靜態庫中包含哪些架構
    lipo -info lib.a

    該命令可以查看靜態庫中包含哪些架構,如armv7和i386。

  • 解壓出指定架構的靜態庫
    lipo -extract_family armv7 -output lib-armv7.a lib.a

    以上命令可以從lib.a靜態庫中解壓出armv7架構的靜態庫lib-armv7.a,可以以同樣的方式解壓出針對模擬器的架構庫文件(如i386)。

  • 將a格式的靜態庫解壓爲o文件
    ar -x lib.a

    以上命令可以解壓出lib.a中的所有o文件。

  • 將o文件合併爲a文件
    libtool -static -o lib.a *.o

    與上一個解壓命令相反,這個命令將所有o文件合併爲一個a文件,這兩個命令常用於多個項目中引用的a庫存在衝突時(duplicate symbol)解決衝突的一種方式。

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