mac编译静态openssl


http://www.voidcn.com/article/p-qxtttuii-n.html

解压openssl

在这里插入图片描述

创建目录

yutongdeMacBook-Pro:openssl-1.1.1d yutonghuo$ mkdir openssl_arm64 openssl_armv7 openssl_lib

其实就是先生成不同架构的目录

配置路径

yutongdeMacBook-Pro:openssl-1.1.1d yutonghuo$ ./Configure iphoneos-cross --prefix=/Users/yutonghuo/opensource/openssl-1.1.1d/openssl_armv7
  • –prefix后面是上一步创建的目录
  • 效果
    在这里插入图片描述

修改配置文件

  • 用xcode打开makefile文件:
    在这里插入图片描述

  • 修改配置

  • 设置编译器

    • 搜索 CC= $(CROSS_COMPILE)cc 替换为
    CC= /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7
    
    • 其中/Applications/…/clang为编译器路径,
      -arch armv7 修改为对应的指令集
  • 设置sdk路径

    • 在CC= $(CROSS_COMPILE)cc 的下一行,我们可以发现CFLAGS的参数设置 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
    
    • 其中-isysroot ( C R O S S T O P ) / S D K s / (CROSS_TOP)/SDKs/ (CROSSTOP)/SDKs/(CROSS_SDK)参数为sdk路径,在该修改的一行代码上添加路径为:

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

编译

make
make install

问题

make报错 ***missing separator. Stop
  • make报错 ***missing separator. Stop
    在这里插入图片描述
    查资料是tab的问题,但是我恢复成原版的makefile
    make后报错:
    在这里插入图片描述
  • 解决 用vim查看报错的行数 make[1] 用vim打开makefile,然后:1,去除换行空格等
  • 另外sdk的目录没有找到,所以利用xcodebuild -showsdks 查找对应版本,改在CROSS_SDK=iPhoneSimulator10.1.sdk这里 ,如本机是CROSS_SDK=iPhoneOS9.3.sdk
  • 其实编译中需要利用xcode的sdk,所以位置需要配置对
生成库不在配置路径中

在这里插入图片描述
应该在openssl_armv7?为何,./configure的 --prefix路径配置错误

下面编译多个指令库后合并成通用库

编译arm64报错:
解决:也不知哪里问题:改了
打开crypto/ui/ui_openssl.c进行编辑。
static volatile sig_atomic_t intr_signal;
修改为:static volatile int intr_signal;
然后cc后面是–prefix,
配置每个路径一定要去文件里看是否存在!

  • 合并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
  • 查看在这里插入图片描述
    看https://www.jianshu.com/p/27c3393054da
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值