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 NDK 编译BoringSSL -> 正文阅读

[移动开发]使用Android NDK 编译BoringSSL

1、下载boringssl(https://boringssl.googlesource.com/boringssl/)

2、下载NDK及环境变量配置(NDK 下载 ?|? Android NDK ?|? Android Developers (google.cn)

NDK下载好后,配置一下NDK的环境变量,我是在/etc/profile 进行配置的。

配置如下:

export NDK_HOME=/home/android-ndk-r23b

export PATH=$NDK_HOME:$PATH

配置完后,执行source /etc/profile, 输入echo $NDK_HOME 确认是否配置成功。

如果输入echo $NDK_HOME出现配置的路径,则表示成功。

NDK配置好后,测试一下clang工具是否好用(之前我就碰到NDK下的clang不好用,出现了电脑卡死的问题,因为没有error提示,所以尝试了好久才解决了问题。)

测试方法:

以android-ndk-r23b-linux.zip为例,解压出来的文件夹名为:android-ndk-r23b

进入到下述目录:android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/bin

写一个任意的helloworld.cpp ,然后执行:clang++? helloworld.cpp

如果出现的clang++: command not found,这边是clang++ 工具是不好用的。

如果成功编译了,表示clang++ 工具是可用的。

这里需要注意一下:Docker环境下使用clang++? helloworld.cpp 会有问题,因为我的目标已经达成,所以没有继续去调查Docker下为什么会出问题。建议大家避免使用Docker环境来干这事。

3、 cmake 安装(Download | CMake

测试cmake安装成功方法:到任意目录 输入:cmake --version?

如果出现cmake version xxxxx,表示安装成功。

(印象中有依赖re2c, 如果出现错误提示,记得下载安装一下)

4、安装ninja? (Releases · ninja-build/ninja · GitHub

测试ninja安装成功方法:到任意目录输入:ninja --version,

如果出现版本号,比如:1.10.2,表示安装成功。

上述都准备好后,在boringssl的源码目录下,创建一个build文件,

然后再在build文件下创建一个build.sh脚本,脚本内容如下 :

#!/bin/sh

cmake -DANDROID_ABI=arm64-v8a? ? #我是64位机器android,所以选了这个
-DANDROID_NATIVE_API_LEVEL=23? \
-DANDROID_NDK=$NDK_HOME \?
-DCMAKE_TOOLCHAIN_FILE=$NDK_HOME/build/cmake/android.toolchain.cmake? \
-DCMAKE_BUILD_TYPE=Release? \
-DANDROID_PLATFORM=android-23 \?
-DBUILD_SHARED_LIBS=1? ?\? #这个是为了编译动态库的,取消这个生成的就是静态库
-GNinja ..

cmake --build .? ?

#注意 cmake --build .后面需要加一个 点。

执行这个./build.sh 脚本,会在build 目录下生成的ssl和crypto 目录下生成两个动态库libssl.so和libcrypto.so,头文件就是boringssl根目录下的include。

到此成功完成。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 10:01:16  更:2021-11-27 10:01:55 
 
开发: 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/24 5:42:40-

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