ndk交叉编译C++ 可执行文件

利用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路径

你可能感兴趣的:(android,c++)