Xcode編譯Crypto++

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ò)誤:


截屏2019-10-22下午3.45.47.png

那就先切換到bash下再執(zhí)行上述命令:

bash
source ./setenv-ios.sh x86_64

結(jié)果:


截屏2019-10-22下午4.11.30.png

注意:
官網(wǎng)上的命令是
source ./setenv-ios.sh,這個(gè)請(qǐng)看文末,有詳細(xì)解釋。

3.執(zhí)行編譯命令:

make -f GNUmakefile-cross

結(jié)果:


截屏2019-10-22下午3.56.03.png

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

lipo -info libcryptopp.a

結(jié)果:


截屏2019-10-22下午4.16.26.png

5.刪除一些沒(méi)用的東西,命令:

rm *.so *.dylib *.exe

結(jié)果:


截屏2019-10-22下午4.02.44.png

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)系:


截屏2019-10-22下午4.22.44.png

2.添加庫(kù)


截屏2019-10-22下午4.27.52.png
截屏2019-10-22下午4.31.08.png
截屏2019-10-22下午4.32.04.png
截屏2019-10-22下午4.32.28.png

完成?。?!

備注:

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


截屏2019-10-22下午4.15.32.png

剛剛你編譯出來(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ù)!?。。。。。。。。。。。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容