1.环境与工具
- cmake-3.11.4
- GNU Make 4.2
- android-ndk-r15c
- OpenCV 3.4.0
- 注意环境和版本需要对应,不然很可能编译不成功。
2.准备工作
- 解压缩 android-ndk-r15c-linux-x86_64.zip 到 ~/android-ndk-r15c
- 解压缩 opencv-3.4.0.zip 到 ~/opencv-3.4.0
3.生成交叉编译工具
- 进入工具目录 cd ~/android-ndk-r15c/build/tools/,如下图所示
- 执行命令 ./make-standalone-toolchain.sh --toolchain=aarch64-linux-android-4.9 --arch=arm --platform=android-24 --package-dir=/tmp/compile-tools--toolchain:位于目录 ~/android-ndk-r15c/toolchains 下的工具链,根据目标CPU架构选择
- --arch:CPU架构类型,可选{arm,arm64,mips,mips64,x86,x86_64}
- --platform:目标Android系统版本号
- --package-dir:生成交叉编译工具目录,
- 进入生成目录 cd package-dir,文件结构如图
-
- 解压缩交叉编译工具包,执行命令 tar -xjvf aarch64-linux-android.tar.bz2,结果文件目录如图
4.编译准备工作
- 进入OpenCV目录,执行命令 cd ~/opencv-3.4.0,文件结构如图:
- 添加如下代码到CMakeLists.txt文件起始处,保存并退出,结果如图添加如下代码到CMakeLists.txt文件起始处,保存并退出,结果如图
- NDK_STANDALONE_TOOLCHAIN 就是刚才编译出来的aarch64-linux-android
5.编译OpenCV
- 创建build目录并进入,mkdir build;cd build
- 执行命令cmake .. ,执行成功结果如图
- make -j32 ,-j:jos,编译线程数,根据CPU线程数选择
- 编译结束,可以在build目录下看到