iOS a檔案合併

2021-08-20 07:48:05 字數 2032 閱讀 6373

在移動開發過程中,如果乙個工程需要接入很多第三方sdk ,那麼乙個工程可能有好多個.a庫。這麼多個.a檔案,能不能合成乙個庫,而又能同時實現多個功能呢?

1.開啟launchpad->其他->終端;

2.從工程拖出上述三個.a檔案,拖拽到桌面上,此時,它們的路徑分別是:

/users/ssiwo02/desktop/libcrypto.a

/users/ssiwo02/desktop/libssl.a

/users/ssiwo02/desktop/libwechatsdk.a

在終端輸入命令:  lipo -info /users/ssiwo02/desktop/libcrypto.a

顯示: architectures in the fat file: /users/ssiwo02/desktop/libcrypto.a are: armv7 armv7s i386 x86_64 arm64

同理 分別檢視libssl.a    libwechatsdk.a 支援的架構資訊。

4.使用終端,分別分離出上述三個.a檔案單獨支援的架構版本,比如上述libcrypto.a支援armv7 armv7s i386 x86_64 arm64,那麼就需要分離出單獨支援armv7 armv7s i386 x86_64 arm64的libcrypto.a

在終端輸入命令: lipo /users/ssiwo02/desktop/libcrypto.a -thin armv7 -output /users/ssiwo02/desktop/libcrypto_armv7.a

然後桌面上就出現乙個單獨支援armv7架構的.a庫,命名為   libcrypto_armv7.a

同理分別分理libssl.a    libwechatsdk.a 所支援的全部架構版本。

5.使用終端,分離出.a庫的目標檔案(.o)

在進行分離之前,因為.a庫分離出來的目標檔案.o檔案很多,所以,最好在桌面上建立五個資料夾,命名為a,b,c,d,e,f   分別用來儲存分離出來的支援armv7 armv7s i386 x86_64 arm64的.o檔案。並進入當前的檔案路徑

在終端輸入命令:cd /users/ssiwo02/desktop/a/

ar -x /users/ssiwo02/desktop/libcrypto_armv7.a

cd /users/ssiwo02/desktop/b/   (每次分離前,一定要更改當前的路徑,否則分離出來的.o 檔案都會在/users/ssiwo02/desktop/a/資料夾下)

ar -x /users/ssiwo02/desktop/libcrypto_armv7s.a

這步操作比較多,容易出錯。

6.對支援同個架構的.o檔案,進行合併成靜態庫。

在終端輸入命令: libtool -static -o /users/ssiwo02/desktop/a/lib***x-armv7.a *.o  

執行完畢,就會在/users/ssiwo02/desktop/a/路徑中,生成乙個lin***xx-armv7.a 的檔案。

同理分別對b,c,d,e,f的資料夾中的.o檔案進行合併,並且命名。

如果不出錯,就會得到5個.a檔案:lib***xx-armv7.a ,  lib***xx-armv7s.a ,  lib***xx-i386.a ,  lib***xx-x86_64.a ,   lib***xx-arm64.a

7.合成支援全部架構的通用靜態庫

在終端輸入命令: lipo -create /users/ssiwo02/desktop/a/lib***xx-armv7.a /users/ssiwo02/desktop/b/lib******-armv7s.a /users/ssiwo02/desktop/c/lib******-i386.a /users/ssiwo02/desktop/d/lib******-x86_64.a /users/ssiwo02/desktop/e/lib******- arm64.a -output /users/ssiwo02/desktop/lib***xx.a

執行完畢,就會在桌面上生成乙個命名為lib***xx.a,這個lib******.a就是我們所需要的.a庫。

sdl2編譯成ios a庫

一 編譯環境 sdl庫編譯成.a庫,應該沒有什麼環境的要求,但是在這裡還是先說一下自己的環境。mac 10.12.6 xcode 9.2 sdl2 sdl2 2.0.7 二 準備工作 其中sdl2 2.0.7.zip和sdl2 2.0.7.tar.gz裡是原始碼檔案,而且兩者的原始碼檔案是完全一樣的...

xcode6製作IOS a靜態庫小記

建立ios靜態庫 簡單寫個列印的 編碼完成之後,直接run就能成功生成.a檔案了,選擇 xcode window organizer projects your project,開啟工程的derived data目錄,這樣就能找到生成的.a檔案了,如圖 靜態庫就生成了 匯入靜態庫 如果你要匯入靜態庫...

合併 hdfs 檔案

待研究,只做儲存 將hdfs中不同目錄下面的資料合在一起,並存放在指定的目錄中,示例如 sqoop merge new data test p1 person onto test p2 person target dir test merged jar file opt data sqoop per...