iOS 生成OpenSSL静态库
2020/5/7 23:26:40
本文主要是介绍iOS 生成OpenSSL静态库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
要求
生成openssl 1.1.0f
版本的静态库
编译
github上找到一个OpenSSL-for-iPhone
1.先下载源码,进入目录
2.执行脚本
./build-libssl.sh --version=1.1.0f 复制代码
这个脚本主要做了几件事:
- 下载1.1.0f压缩包,解压
- 添加默认配置
- 根据配置生成对应指令集的静态库
- 如果有多个就合并成一个静态库输出到
lib
文件夹 - 头文件输出到
include
文件夹
3.找到正确的target
执行完这个脚本会提示错误,找到错误log
Warning! target ios-sim-cross-x86_64 doesn't exist! 复制代码
说没有ios-sim-cross-x86_64
这个target。
当前下载的master
分支的最新代码,默认使用1.1.1d
版本,里面默认target
设置可以在打印中看到:ios-sim-cross-x86_64 ios64-cross-arm64 ios64-cross-arm64e tvos-sim-cross-x86_64 tvos64-cross-arm64
Build options OpenSSL version: 1.1.0f Targets: ios-sim-cross-x86_64 ios64-cross-arm64 ios64-cross-arm64e tvos-sim-cross-x86_64 tvos64-cross-arm64 iOS SDK: 13.4 tvOS SDK: 13.4 Number of make threads: 8 Configure options: no-deprecated 复制代码
再分析之前的错误log
,可以看到它列出来1.1.0f
版本支持的所有target
pick os/compiler from: BS2000-OSD BSD-generic32 BSD-generic64 BSD-ia64 BSD-sparc64 BSD-sparcv8 BSD-x86 BSD-x86-elf BSD-x86_64 Cygwin Cygwin-i386 Cygwin-i486 Cygwin-i586 Cygwin-i686 Cygwin-x86 Cygwin-x86_64 DJGPP MPE/iX-gcc OS390-Unix QNX6 QNX6-i386 UEFI UWIN VC-CE VC-WIN32 VC-WIN64A VC-WIN64A-masm VC-WIN64I aix-cc aix-gcc aix64-cc aix64-gcc android android-armeabi android-mips android-x86 android64 android64-aarch64 bsdi-elf-gcc cc darwin-i386-cc darwin-ppc-cc darwin64-debug-test-64-clang darwin64-ppc-cc darwin64-x86_64-cc dist gcc haiku-x86 haiku-x86_64 hpux-ia64-cc hpux-ia64-gcc hpux-parisc-cc hpux-parisc-gcc hpux-parisc1_1-cc hpux-parisc1_1-gcc hpux64-ia64-cc hpux64-ia64-gcc hpux64-parisc2-cc hpux64-parisc2-gcc hurd-x86 ios-cross ios64-cross iphoneos-cross irix-mips3-cc irix-mips3-gcc irix64-mips4-cc irix64-mips4-gcc linux-aarch64 linux-alpha-gcc linux-aout linux-arm64ilp32 linux-armv4 linux-c64xplus linux-elf linux-generic32 linux-generic64 linux-ia64 linux-mips32 linux-mips64 linux-ppc linux-ppc64 linux-ppc64le linux-sparcv8 linux-sparcv9 linux-x32 linux-x86 linux-x86-clang linux-x86_64 linux-x86_64-clang linux32-s390x linux64-mips64 linux64-s390x linux64-sparcv9 mingw mingw64 nextstep nextstep3.3 purify qnx4 sco5-cc sco5-gcc solaris-sparcv7-cc solaris-sparcv7-gcc solaris-sparcv8-cc solaris-sparcv8-gcc solaris-sparcv9-cc solaris-sparcv9-gcc solaris-x86-gcc solaris64-sparcv9-cc solaris64-sparcv9-gcc solaris64-x86_64-cc solaris64-x86_64-gcc tru64-alpha-cc tru64-alpha-gcc uClinux-dist uClinux-dist64 unixware-2.0 unixware-2.1 unixware-7 unixware-7-gcc vms-alpha vms-alpha-p32 vms-alpha-p64 vms-ia64 vms-ia64-p32 vms-ia64-p64 vos-gcc vxworks-mips vxworks-ppc405 vxworks-ppc60x vxworks-ppc750 vxworks-ppc750-debug vxworks-ppc860 vxworks-ppcgen vxworks-simlinux debug debug-erbridge debug-linux-ia32-aes debug-linux-pentium debug-linux-ppro debug-test-64-clang 复制代码
找到iOS
对应的几个target
:ios-cross ios64-cross iphoneos-cross
,尝试了之后发现只有ios64-cross
有效。
第2步的脚本可以修改为:
./build-libssl.sh --targets="ios64-cross" --version=1.1.0f 复制代码
4.得到静态库
最终生成的静态库在lib
文件夹,头文件在include
。引入到工程中,指定好目录就可以愉快使用了。
这篇关于iOS 生成OpenSSL静态库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-10-05Swift语法学习--基于协议进行网络请求
- 2022-08-17Apple开发_Swift语言地标注释
- 2022-07-24Swift 初见
- 2022-05-22SwiftUI App 支持多语种 All In One
- 2022-05-10SwiftUI 组件参数简写 All In One
- 2022-04-14SwiftUI 学习笔记
- 2022-02-23Swift 文件夹和文件操作
- 2022-02-17Swift中使用KVO
- 2022-02-08Swift 汇编 String array
- 2022-01-30SwiftUI3.0页面反向传值