Xcode編譯Crypto++(cryptopp)c++庫(kù)
一、簡(jiǎn)介
簡(jiǎn)介:公司的老項(xiàng)目用到了Crypto++(cryptopp)庫(kù),但是留下來(lái)的代碼并沒(méi)有編譯好的靜態(tài)庫(kù)供使用,所以自己就研究并編譯了成功了這個(gè)庫(kù)。
Crypto++庫(kù)主要功能是提供加解密的一個(gè)c++庫(kù),編譯流程官網(wǎng)已經(jīng)提供,這里只是做個(gè)記錄。我用的是命令行編譯,其他未使用。
二、準(zhǔn)備工作
1.環(huán)境
Xcode 11.1
cryptopp庫(kù)版本 8.2.0 (8M左右)
2.下載源碼,傳送門(mén)
三、開(kāi)始編譯
1.解壓源碼,cd到目錄下(或者直接拖)
2.執(zhí)行環(huán)境配置命令,這個(gè)命令一定要加source,不然會(huì)編譯失敗:
source ./setenv-ios.sh x86_64
如果你出現(xiàn)這樣的錯(cuò)誤:

那就先切換到bash下再執(zhí)行上述命令:
bash
source ./setenv-ios.sh x86_64
結(jié)果:

注意:
官網(wǎng)上的命令是
source ./setenv-ios.sh,這個(gè)請(qǐng)看文末,有詳細(xì)解釋。
3.執(zhí)行編譯命令:
make -f GNUmakefile-cross
結(jié)果:

4.恭喜你,你已經(jīng)得到了一個(gè)x86_64的libcryptopp.a的靜態(tài)庫(kù)了。你可以用以下命令查看該庫(kù)支持的架構(gòu):
lipo -info libcryptopp.a
結(jié)果:

5.刪除一些沒(méi)用的東西,命令:
rm *.so *.dylib *.exe
結(jié)果:

6.安裝庫(kù):
sudo make install PREFIX=/usr/local/cryptopp-ios
注:這個(gè)PREFIX后面的路徑/usr/local/cryptopp-ios可以是任何位置,名稱也是任意的,我就把他放到了桌面/Users/zhangtiankang/Desktop,我的命令是:
sudo make install PREFIX=/Users/zhangtiankang/Desktop/cryptopp
四、在Xcode中使用
1.配置路徑,請(qǐng)對(duì)號(hào)入座,和上面你安裝庫(kù)的路徑有關(guān)系:

2.添加庫(kù)




完成?。?!
備注:
關(guān)于命令source ./setenv-ios.sh,這是配置armv7,就是說(shuō)打包出來(lái)的庫(kù)是支持armv7的,后面加上x(chóng)86_64就是配置64位模擬器的,加上arm64就是真機(jī)。

剛剛你編譯出來(lái)了一個(gè)x86_64的支持模擬器的庫(kù),如果你想在真機(jī)運(yùn)行,就必須重新從頭再走一遍,只是把命令換成
source ./setenv-ios.sh arm64
其他不變,最后你會(huì)有兩個(gè)庫(kù),一個(gè)是模擬器的x86_64庫(kù)和真機(jī)的arm64庫(kù),
如果你不想頻繁的切換引用路徑就要把兩個(gè)庫(kù)合并,合并命令:
lipo create 路徑1/libcryptopp.a 路徑2/libcryptopp.a -output 路徑1/libcryptopp.a
得到的庫(kù)會(huì)存在于路徑1的位置
你可以用命令:
lipo -info libcryptopp.a
去查看他支持的架構(gòu)。
并且,appsotre審核只能用真機(jī)的庫(kù)!?。。。。。。。。。。。?!