iOS如何编译OpenSSL静态库(openssl版本:1.1.1b)

第一步:下载一份OpenSSL,网址:https://www.openssl.org/source/

第二步:解压文件

第三步:进入文件目录,创建所需要的的库的路径:

# 制定CPU的架构(armv7,arm64和整合后的库)
$ mkdir openssl_arm64 openssl_armv7  openssl_lib

第四步:进入文件目录,创建所需要的的库的路径

#--prefix=后面的内容为上一步创建的目录
$ ./Configure iphoneos-cross --prefix=/Users/xxx/openssl-1.1.1b/openssl_armv7 

第五步:修改配置文件

进入文件目录使用文本编辑器(可以使用XcodeCLion,vscode似乎不行)打开Makefile文件,修改配置:

1.将CC= $(CROSS_COMPILE)cc 替换为

CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7

armv7 是CPU的指令集架构

2.设置SDK的路径

打开Makefile文件,将原来的 

CFLAGS=-3

改成 

CFLAGS=-DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSLDIR="\"$(OPENSSLDIR)\"" -DENGINESDIR="\"$(ENGINESDIR)\"" -O3 -D_REENTRANT -isysroot $(CROSS_TOP)/SDKs/$(CROSS_SDK) -fno-common       

 在刚刚修改完毕的一行代码上加上两行:

# sdk上层路径
CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
# sdk文件
CROSS_SDK=iPhoneOS12.1.sdk

第六步:编译

make
make install

 如果执行成功,我们就可以在设置的目录下(第三步设置)查看到我们所需要的文件了

第七步:清理

编译过程中会产生一些垃圾文件,当我们最终编译成功后,依然会存在。这时候就需要我们及时清理掉,为下个版本的编译做好准备

make clean

第八步:按上述步骤操作,编译多个指令集的库

第九步:合并成通用库

将不同指令集的库libssl.a和libcrypto.a分别合并成各自的通用库

lipo -create openssl_arm64/lib/libssl.a openssl_armv7/lib/libssl.a -output openssl_lib/libssl.a
lipo -create openssl_arm64/lib/libcrypto.a openssl_armv7/lib/libcrypto.a -output openssl_lib/libcrypto.a

第十步:查看通用库

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值