Xcode编译Crypto++(cryptopp)c++库
一、简介
简介:公司的老项目用到了Crypto++(cryptopp)库,但是留下来的代码并没有编译好的静态库供使用,所以自己就研究并编译了成功了这个库。
Crypto++库主要功能是提供加解密的一个c++库,编译流程官网已经提供,这里只是做个记录。我用的是命令行编译,其他未使用。
二、准备工作
1.环境
Xcode 11.1
cryptopp库版本 8.2.0 (8M左右)
2.下载源码,传送门
三、开始编译
1.解压源码,cd到目录下(或者直接拖)
2.执行环境配置命令,这个命令一定要加source,不然会编译失败:
source ./setenv-ios.sh x86_64
如果你出现这样的错误:
那就先切换到bash下再执行上述命令:
bash
source ./setenv-ios.sh x86_64
结果:
注意:
官网上的命令是
source ./setenv-ios.sh,这个请看文末,有详细解释。
3.执行编译命令:
make -f GNUmakefile-cross
结果:
4.恭喜你,你已经得到了一个x86_64的libcryptopp.a的静态库了。你可以用以下命令查看该库支持的架构:
lipo -info libcryptopp.a
结果:
5.删除一些没用的东西,命令:
rm *.so *.dylib *.exe
结果:
6.安装库:
sudo make install PREFIX=/usr/local/cryptopp-ios
注:这个PREFIX后面的路径/usr/local/cryptopp-ios可以是任何位置,名称也是任意的,我就把他放到了桌面/Users/zhangtiankang/Desktop,我的命令是:
sudo make install PREFIX=/Users/zhangtiankang/Desktop/cryptopp
四、在Xcode中使用
1.配置路径,请对号入座,和上面你安装库的路径有关系:
2.添加库
完成!!!
备注:
关于命令source ./setenv-ios.sh,这是配置armv7,就是说打包出来的库是支持armv7的,后面加上x86_64就是配置64位模拟器的,加上arm64就是真机。
刚刚你编译出来了一个x86_64的支持模拟器的库,如果你想在真机运行,就必须重新从头再走一遍,只是把命令换成
source ./setenv-ios.sh arm64
其他不变,最后你会有两个库,一个是模拟器的x86_64库和真机的arm64库,
如果你不想频繁的切换引用路径就要把两个库合并,合并命令:
lipo create 路径1/libcryptopp.a 路径2/libcryptopp.a -output 路径1/libcryptopp.a
得到的库会存在于路径1的位置
你可以用命令:
lipo -info libcryptopp.a
去查看他支持的架构。
并且,appsotre审核只能用真机的库!!!!!!!!!!!!!!