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 下载后解压。

Android - 编译 openssl 踩坑之路_第1张图片

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

Android - 编译 openssl 踩坑之路_第2张图片

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

你可能感兴趣的:(Android音视频,NDK和jni,Android笔记,android,openssl,ndk,webrtc,c++)