发布时间: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路径