IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【Android音视频】MacOS上OpenSSL3.0.4编译 -> 正文阅读

[移动开发]【Android音视频】MacOS上OpenSSL3.0.4编译

1. OpenSSL官网下载链接:

openssl源码下载链接icon-default.png?t=M5H6https://www.openssl.org/source/可以看到目前有两个版本的OpenSSL:

?2.?下载3.0.4版本压缩包,解压至自己想要的文件路径下即可。以下多步骤为雷同的做法,参考此文即可。【Android音视频】MacOS上FFmpeg5.0.1编译icon-default.png?t=M5H6https://blog.csdn.net/Taozi825232603/article/details/1254365133.?在该OpenSSL文件夹下创建编译脚本,可参考以下脚本(文件名自定义即可,例如 build_openssl.sh)。在编写脚本之前,请你打开目录下的Configure文件查看一下内容,这很有帮助。稍微快速的浏览,你会看到以下这段话:

# All the "make variables" we support
# Some get pre-populated for the sake of backward compatibility
# (we supported those before the change to "make variable" support.
my %user = (
    AR          => env('AR'),
    ARFLAGS     => [],
    AS          => undef,
    ASFLAGS     => [],
    CC          => env('CC'),
    CFLAGS      => [ env('CFLAGS') || () ],
    CXX         => env('CXX'),
    CXXFLAGS    => [ env('CXXFLAGS') || () ],
    CPP         => undef,
    CPPFLAGS    => [ env('CPPFLAGS') || () ],  # -D, -I, -Wp,
    CPPDEFINES  => [],  # Alternative for -D
    CPPINCLUDES => [],  # Alternative for -I
    CROSS_COMPILE => env('CROSS_COMPILE'),
    HASHBANGPERL=> env('HASHBANGPERL') || env('PERL'),
    LD          => undef,
    LDFLAGS     => [ env('LDFLAGS') || () ],  # -L, -Wl,
    LDLIBS      => [ env('LDLIBS') || () ],  # -l
    MT          => undef,
    MTFLAGS     => [],
    PERL        => env('PERL') || ($^O ne "VMS" ? $^X : "perl"),
    RANLIB      => env('RANLIB'),
    RC          => env('RC') || env('WINDRES'),
    RCFLAGS     => [ env('RCFLAGS') || () ],
    RM          => undef,
   );

4. 编写build_openssl.sh文件,大致可参考官方教程(NOTES-ANDROID.md文件),里面说在Linux平台下交叉编译是OK的,但是在别的平台并没测试过。那我们就稍微试试吧(其实用C编译器即可),此处我的测试用手机为 arm64-v8a,因此使用对应的配置参数 android-arm64

#!/bin/bash

export ANDROID_NDK_ROOT=/Users/tao/Library/Android/sdk/ndk/21.4.7075529
export TOOLCHAIN=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/darwin-x86_64
export CROSS_COMPILE=$TOOLCHAIN/bin/

API=28

export CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang
export CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++

# note:
# Redmi7(arm64-v8a)
ARCH=arm64
CPU=armv8-a

PREFIX=$(pwd)/android/$CPU

make clean

function build_android
{
    echo "Compile OpenSSL start."

    ./Configure \
    android-arm64 \
    -D__ANDROID_API__=$API \
    --prefix=$PREFIX 

    make clean
    make -j8
    make install

    echo "Compile OpenSSL completed."
}

build_android

5.?开始编译OpenSSL。执行(本人将该文件名命名为 build_openssl.sh):

./build_openssl.sh

6.?编译完成后,可在该OpenSSL文件夹下看到 android 文件夹,里面有我们需要的 include 和 lib文件夹。


至此,OpenSSL3.0.4编译完成。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-07-05 23:36:33  更:2022-07-05 23:37:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 3:30:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码