发布时间:2022-09-11 19:00
利用CMakeList编译C++可执行文件在安卓中运行,一般有三种方法:
一、在同一个ABI环境的服务器中编译,编译出的可执行文件,就是对应架构的,例如:需要在arm64的安卓系统中运行C++可执行文件,可在arm64服务器编译;
二、利用安卓sdk环境进行交叉编译
三、利用安卓ndk环境进行交叉编译
这里介绍第三种方法,利用ndk环境交叉编译C++可执行文件在arm64安卓系统中运行:
1、下载ndk,这里下载的是android-ndk-r21e-linux-x86_64.zip,然后解压即可
2、编写编译的CMakeList 文件
3、编写shell脚本,新建一个run.sh脚本,该shell脚本中指定ndk的路径、编译的DANDROID_ABI、DANDROID_NATIVE_API_LEVEL,该脚本会自动找到CMakeList编译CPP文件,示例如下:
mkdir -p build
cd build
rm -rf *
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=/xxx/android-ndk-r21e/build/cmake/android.toolchain.cmake \
-DANDROID_ABI="arm64-v8a" \
-DANDROID_NATIVE_API_LEVEL=android-29
make -j4
备注:DCMAKE_TOOLCHAIN_FILE为自己的ndk路径
论文阅读笔记之——《Multi-level Wavelet-CNN for Image Restoration》及基于pytorch的复现
11月21日科技资讯|罗永浩将举办「老人与海」发布会;微软疑似遭遇大范围全球宕机;Python 3.9 首个测试版发布
Pyqt主要组件QFileDialog,QMessageBox,QInputDialog,QPushButton详解,附详细代码(持续更新中.....)
15.[STM32]一篇文章教会你使用75HC595芯片驱动四位数码管
【Abp VNext】实战入门(五):【3】前端管理界面 vue-element-admin —— Vuex状态缓存 自动持久化本地存储
论文解读PCT: Point Cloud Transformer(用于点云处理的Transformer)
【Spring源码解析】Spring xml配置import、alias、beans标签解析