欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

在WIN10上使用cmd窗口命令编译Android OpenCV

程序员文章站 2022-06-25 08:38:41
构建编译项目 不需要安装CMake,MinGW等额外工具。只需要Android NDK和OpenCV源码 。 在WIN10上使用cmd窗口命令编译OpenCV步骤,操作版本为4.0.1: 1. 在OpenCV根目录下面新建一个文件夹,比如叫做build_cmd。因为OpenCV要求 不和 是同一个文 ......

构建编译项目

不需要安装cmake,mingw等额外工具。只需要android ndk和opencv源码
在win10上使用cmd窗口命令编译opencv步骤,操作版本为4.0.1:

  1. 在opencv根目录下面新建一个文件夹,比如叫做build_cmd。因为opencv要求cmake_binary_dir不和cmake_source_dir是同一个文件夹,所以不能在根目录下直接执行cmake
  2. cd到build_cmd
  3. 执行如下命令,路径对应修改
e:\android\sdk\cmake\3.10.2.4988404\bin\cmake.exe ^
-dcmake_toolchain_file=e:\android\sdk\ndk-bundle\build\cmake\android.toolchain.cmake ^
-dandroid_ndk=e:\android\sdk\ndk-bundle ^
-dandroid_abi="arm64-v8a" ^
-dandroid_sdk=e:\android\sdk ^
-dwith_tbb=on ^
-dcpu_baseline=neon ^
-dcpu_dispatch=neon ^
-dopencv_enable_nonfree=on ^
-dbuild_android_examples=off ^
-dbuild_android_projects=off ^
-dinstall_android_examples=off ^
-dandroid_native_api_level=21 ^
-dopencv_extra_modules_path=f:\opencv_401\opencv_contrib_401\modules ^
-dcmake_cxx_flags:string=-o3 ^
-dcmake_c_flags:string=-o3 ^
-dcmake_build_type:string=release ^
-dbuild_java=off ^
-dbuild_opencv_world=on ^
-g "ninja" ^
-dcmake_make_program=e:\android\sdk\cmake\3.10.2.4988404\bin\ninja.exe ../

要点:

  1. e:\android\sdk\cmake\3.10.2.4988404\bin\cmake.exe,这个是直接使用android sdk中自带的cmake,没必要重新下cmake程序
  2. -dcmake_toolchain_file=e:\android\sdk\ndk-bundle\build\cmake\android.toolchain.cmake,这个需要指定为android sdk中的ndk中自带的文件,否则,可能会遇到ndk版本不对或者找不到toolchain文件的错误。
  3. -dandroid_abi="arm64-v8a",这个千万不能忘记
  4. -g "ninja":最近的版本开始,android sdk自带的cmake已经没有之前的android - gradle这个生成方式了,所以转而选择ninja。不要去选择mingw makefiles之类的,因为那样的话,需要重新下载其他,而andoird sdk中自带ninja编译
  5. -dbuild_android_examples=off -dbuild_android_projects=off -dinstall_android_examples=off,不用编译examples,浪费时间。同时可以避免cmake error at samples/android/15-puzzle/cmakelists.txt:3 (add_android_project): unknown cmake command "add_android_project".错误。
  6. -dcpu_baseline=neon -dcpu_dispatch=neon,开启neon优化。enable_neon是个没用的参数,就算define了,也会显示no help, variable specified on the command line
  7. build_java=off,不编译java相关的
  8. build_opencv_world=on,把opencv编译到一个world库,减少库的数量。按需设置。
  9. opencv_enable_nonfree=on,编译非免费算法。按需设置。
  10. opencv_extra_modules_path=f:\opencv_401\opencv_contrib_401\modules,编译extra模块

    编译与安装

    先后直线下面两个命令即可
e:\android\sdk\cmake\3.10.2.4988404\bin\ninja.exe
e:\android\sdk\cmake\3.10.2.4988404\bin\ninja.exe install