在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:
- 在opencv根目录下面新建一个文件夹,比如叫做build_cmd。因为opencv要求
cmake_binary_dir
不和cmake_source_dir
是同一个文件夹,所以不能在根目录下直接执行cmake - cd到build_cmd
- 执行如下命令,路径对应修改
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 ../
要点:
-
e:\android\sdk\cmake\3.10.2.4988404\bin\cmake.exe
,这个是直接使用android sdk中自带的cmake,没必要重新下cmake程序 -
-dcmake_toolchain_file=e:\android\sdk\ndk-bundle\build\cmake\android.toolchain.cmake
,这个需要指定为android sdk中的ndk中自带的文件,否则,可能会遇到ndk版本不对或者找不到toolchain文件的错误。 -
-dandroid_abi="arm64-v8a"
,这个千万不能忘记 -
-g "ninja"
:最近的版本开始,android sdk自带的cmake已经没有之前的android - gradle
这个生成方式了,所以转而选择ninja
。不要去选择mingw makefiles
之类的,因为那样的话,需要重新下载其他,而andoird sdk中自带ninja编译 -
-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".
错误。 -
-dcpu_baseline=neon -dcpu_dispatch=neon
,开启neon优化。enable_neon
是个没用的参数,就算define了,也会显示no help, variable specified on the command line
-
build_java=off
,不编译java相关的 -
build_opencv_world=on
,把opencv编译到一个world库,减少库的数量。按需设置。 -
opencv_enable_nonfree=on
,编译非免费算法。按需设置。 -
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
下一篇: DOM解读