OpenCV3.4.0 Android平台交叉编译(CMake)

1.环境与工具

2.准备工作

  1. 解压缩 android-ndk-r15c-linux-x86_64.zip 到 ~/android-ndk-r15c 
  2. 解压缩 opencv-3.4.0.zip 到 ~/opencv-3.4.0

3.生成交叉编译工具

  • 进入工具目录 cd ~/android-ndk-r15c/build/tools/,如下图所示OpenCV3.4.0 Android平台交叉编译(CMake)
  • 执行命令 ./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,文件结构如图
  • OpenCV3.4.0 Android平台交叉编译(CMake)
    • 解压缩交叉编译工具包,执行命令 tar -xjvf aarch64-linux-android.tar.bz2,结果文件目录如图OpenCV3.4.0 Android平台交叉编译(CMake)
  • 4.编译准备工作

    • 进入OpenCV目录,执行命令 cd ~/opencv-3.4.0,文件结构如图:
    • OpenCV3.4.0 Android平台交叉编译(CMake)
    • 添加如下代码到CMakeLists.txt文件起始处,保存并退出,结果如图添加如下代码到CMakeLists.txt文件起始处,保存并退出,结果如图
    • OpenCV3.4.0 Android平台交叉编译(CMake)
    • NDK_STANDALONE_TOOLCHAIN 就是刚才编译出来的aarch64-linux-android

  • 5.编译OpenCV

    • 创建build目录并进入,mkdir build;cd build
    • 执行命令cmake .. ,执行成功结果如图
    • OpenCV3.4.0 Android平台交叉编译(CMake)
    • make -j32 ,-j:jos,编译线程数,根据CPU线程数选择
    • 编译结束,可以在build目录下看到
    • OpenCV3.4.0 Android平台交叉编译(CMake)