当前位置: 首页 > news >正文

Android - 编译 openssl 踩坑之路

一、简述

如果你想快速在项目中使用上 openssl,可以使用网上其他开发者提供好的预编译库:

  • OpenSSL(All):https://builds.viaduck.org/prebuilts/openssl/
  • OpenSSL(3.1.*) :https://github.com/217heidai/openssl_for_android

以上的预编译库可能最低只支持 API 21(即 Android 5),如果你的项目需要支持 API 19(Android 4.4.x)及以下的话,就得自己编译 openssl 了,本篇主要记录本人编译 openssl 1.1.1 过程以及遇到的问题,可能对你有所帮助。

二、实战

首先到 openssl 官网或官方仓库中,找到你需要的版本(主要分为 3.x 和 1.x),下载链接如下:

  • openssl 官网:https://www.openssl.org
  • GitHub releases:https://github.com/openssl/openssl/releases

注意:建议不要直接 clone github 仓库(仓库上的最新代码可能存在 bug),要使用官方 release 出来的归档。

这里我就使用 1.x 中最新的的 1.1.1w 为例,点击 openssl-1.1.1w.tar.gz 下载后解压。

因为 openssl 官方目前没有提供 cmake 编译脚本,还是采用传统的 make 命令编译,所以我们需要编写一个 shell 脚本,命名为 build_openssl.sh,与 openssl-1.1.1w 文件夹同级。

build_openssl.sh 文件内容如下:

#!/bin/bash
set -e
# GitLqr:执行 pwd 命令获取当前脚本所在目录路径,并赋值给 CRTDIR 变量
CRTDIR=$(pwd)
# GitLqr:拼接 openssl 源码目录路径
SRC_DIR=$CRTDIR/openssl-1.1.1w# GitLqr:根据你当前的操作系统,使用对应的 NDK_PLATFORM 变量
# NDK_PLATFORM=darwin-x86_64
http://www.lryc.cn/news/219411.html

相关文章:

  • verdi技巧分享--合并多个fsdb文件、统计信号边沿
  • czmq的4版本中CURVE怎么实现的两个程序之间使用的一个证书?
  • Spring Boot整合Swagger
  • SpringBoot-WebSocket浏览器-服务器双向通信
  • Docker网络模式_Docker常用命令_以及Docker如何给运行的镜像内容连接互联网_Docker网络模式原理---Docker工作笔记004
  • 爬虫项目-爬取股吧(东方财富)评论
  • 【Midjourney入门教程2】Midjourney的基础操作和设置
  • 后端使用DES加密,前端解密方法
  • chrome 扩展 popup 弹窗的使用
  • Spring Security入门教程,springboot整合Spring Security
  • 如何在 Unbuntu 下安装配置 Apache Zookeeper
  • AI视觉领域流媒体知识入门介绍(二):深入理解GOP
  • C++ 代码实例:并查集简单创建工具
  • Hadoop学习总结(Shell操作)
  • LeetCode热题100——链表
  • 使用C++的QT框架实现贪吃蛇
  • 如何发布自己的golang库
  • 梳理自动驾驶中的各类坐标系
  • 一个可以自动把微信聊天收到的二维码图片实时提取出来并分类的软件
  • 02-React组件与模块
  • 项目实战:新增@RequestMapping和@GetMapping和@PostMapping三个注解
  • 基于AOSP源码Android-10.0.0_r41分支编译,framework开发,修改系统默认字体大小
  • 如何再kali中下载iwebsec靶场
  • Spring Boot 使用断言抛出自定义异常,优化异常处理机制
  • vue基于ElementUI/Plus自定义的一些组件
  • leetcode刷题日记:69.sqrt(x)
  • [尚硅谷React笔记]——第9章 ReactRouter6
  • 强大的pdf编辑软件:Acrobat Pro DC 2023中文
  • 玩一下Spring Boot
  • 一个高性能类型安全的.NET枚举实用开源库