win10 编译android,在WIN10上不用CMake和MinGW编译Android版本的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_ZLIB:BOOL=ON ^

-DBUILD_opencv_world=ON ^

-DBUILD_FAT_JAVA_LIB:BOOL=OFF ^

-DBUILD_PERF_TESTS:BOOL=OFF ^

-DBUILD_TESTS:BOOL=OFF ^

-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模块

BUILD_ZLIB:BOOL=ON,解决可能的zlib链接失败的问题。如果没有这个选项,就会链接到编译时固定的NDK路径去了

编译与安装 先后直线下面两个命令即可E:\Android\Sdk\cmake\3.10.2.4988404\bin\ninja.exe

E:\Android\Sdk\cmake\3.10.2.4988404\bin\ninja.exe install

来源:oschina

链接:https://my.oschina.net/u/4326175/blog/3207463

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值