Mac下编译openssl

第一步:创建一个文件夹openssl

第二步:下载一份OpenSSL

 网址:https://www.openssl.org/source/,目前版本1.1.1i,得到一个tar文件

第三步:解压文件

得到文件夹 openssl-1.1.1i

第四步:在openssl文件夹下创建armv7\arm64\i386\x86_64对应的文件夹

# 制定CPU的架构(armv7,arm64和整合后的库)

$ mkdir openssl_arm64 openssl_armv7 openssl_i386 openssl_x8664  openssl_lib

第五步:cd到文件夹openssl-1.1.1i,修改路径

#--prefix=第四步创建的目录(搞不清相对路径的可使用绝对路径)

$ ./Configure iphoneos-cross --prefix=../openssl_armv7

第六步:修改配置文件

进入文件夹openssl-1.1.1i下找到Makefile,并打开编辑:

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

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

6.2、将原来的 CFLAGS=-03 替换为

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

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

# sdk上层路径

CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer

# sdk文件(在CROSS_TOP下找到当前的iPhoneOS版本)

CROSS_SDK=iPhoneOS14.3.sdk

6.4、保存文件

第七步:编译

make

make install

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

第八步:清理

避免缓存,删除文件夹 openssl-1.1.1i,同时再次解压第二步得到的tar,重新生成了一个文件夹 openssl-1.1.1i

第九步:重复第五步到第八步,编译多个指令集的库(arm64\i386\x86_64)

注意,在编辑i386和x86_64时6.3的CROSS_TOP和CROSS_SDK应替换为模拟器对应的路径


第十步:合并成通用库

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

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

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

第十一步:查看

在openssl_lib文件夹下会存在相应的通用库


第十二步:整理

将openssl_i386文件夹下的include文件夹拷贝到openssl_lib下

在openssl_lib下创建lib文件夹同时将openssl_lib文件夹下的两个通用库放入,就得到标准的库文件夹了


你可能感兴趣的:(Mac下编译openssl)