Windows环境构建opencv-android添加contrib模块(4.10.0)不用下载VS
环境准备:
Cmake GUI 3.28
NDK r26
https://dl.google.com/android/repository/android-ndk-r26-windows.zip?hl=zh-cn
JDK 1.8.0_381
Mingw64
https://github.com/niXman/mingw-builds-binaries/releases
opencv(下载source code不是sdk,注意)
https://github.com/opencv/opencv/archive/refs/tags/4.10.0.zip
opencv-contrib(自己选择版本就行,两个要选择一样的版本)
https://github.com/opencv/opencv_contrib/archive/refs/tags/4.8.1.zip
配置到windows的环境变量中:
手动新建变量:
ANDROID_NDK_HOME = D:\Users\trry071\AppData\Local\sdk\ndk\26.1.10909125
ANDROID_HOME = D:\Users\trry071\AppData\Local\sdk
JAVA_HOME = C:\Program Files\Java\jdk-1.8
系统 PATH 变量:
%JAVA_HOME%\bin
%ANDROID_HOME%\tools
%ANDROID_HOME%\platform-tools
%ANDROID_NDK_HOME%\prebuilt\windows-x86_64\bin
D:\Users\trry071\mingw64\bin
D:\Program Files\CMake\bin
打开cmakegui,选择source code(下载并解压的opencv源文件)和binaries(最好先在同文件夹内新建一个opencv_build,这里就是要生成的)的文件夹,第一次点击左下角的configure会出现对话框,选择生成器:MinGW Makefiles,然后在下面的选项里选Specify toolchain: Android NDK → 设置NDK路径 D:/android-ndk-r26/build/cmake/android.toolchain.cmake(你下载的ndk文件夹),点击打开,finish就ok了。
之后在gui的界面会有一些红色,可以先不管,在add entry选项添加下面的东西:
ANDROID_ABI |
arm64-v8a |
目标ABI(可选:armeabi-v7a, x86, x86_64) |
ANDROID_PLATFORM |
24 |
Android API 级别(推荐≥21) |
ANDROID_STL |
c++_shared |
C++运行时库 |
BUILD_opencv_world |
OFF |
是否合并为单个库(可选) |
OPENCV_EXTRA_MODULES_PATH |
D:/opencv_build/opencv_contrib-4.10.0/modules |
关键!contrib模块路径 |
BUILD_SHARED_LIBS |
ON |
构建动态库 |
BUILD_ANDROID_EXAMPLES |
OFF |
关闭示例 |
BUILD_JAVA |
ON |
启用Java绑定 |
BUILD_PERF_TESTS |
OFF |
关闭性能测试 |
BUILD_TESTS |
OFF |
关闭单元测试 |
编译动态库(.so)
| BUILD_FAT_JAVA_LIB | OFF |
只有在编译静态库的时候需要启用 |
| BUILD_SHARED_LIBS | on |
编译为动态库 |
编译静态库(.a)的话,就两个选项反过来,off变on,on变off
这些内容都是不固定的,按需来,必须写的是ANDROID_ABI,OPENCV_EXTRA_MODULES_PATH还有选静态动态库的那俩,
还有一个注意的点,自己要在contrib要导入的模块在gui界面找一下,找不到要重新选择一次OPENCV_EXTRA_MODULES_PATH这个,也不知道为啥有时候会有这个bug
这些内容都可以自己选择,或者百度用法, 然后再次点击configure,等一会gui界面会出现很多

自己核对一下信息,然后可以在BUILD_opencv_这一部分勾选或者取消勾选一些文件,建议都勾选因为会有一些模块之间的隐形调用,然后点击generate,这里cmakegui操作基本结束,但是不要关闭,后续可能会用到。
打开你新建的opencv_build目录,可以用cmd或者gitbash打开这个文件目录,依次执行命令
# 开始编译(使用8线程) mingw32-make -j8 # 安装库文件 mingw32-make install
编译时间挺长的,得等一会。有什么遇到的错误可以问ai或者百度自己尝试解决。
然后在这个文件夹里会有一个install文件夹,这就是编译好的包了,不要删东西,可以复制到项目里改个名字就能用了。
最后提一嘴,不同的ABI版本要分开编译,应该是这样。(本人只编译了一个还处处碰壁)
更多推荐


所有评论(0)