博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
win10下cmake编译Android opencv库问题
阅读量:6704 次
发布时间:2019-06-25

本文共 2719 字,大约阅读时间需要 9 分钟。

win10下cmake编译opencv库问题

1.未配置Android NDK工具链目录

CMake Error at platforms/android/android.toolchain.cmake:451 (message):

Could not find neither Android NDK nor Android standalone toolchain.

You should either set an environment variable:
export ANDROID_NDK=~/my-android-ndk

根据提示配置ANDROID_NDK到环境变量PATH中,即可

例如:ANDROID_NDK = D:\android-ndk-r14b


2.ndk版本不匹配。

CMake Error at cmake/OpenCVUtils.cmake:235 (TRY_COMPILE):
Failed to configure test project build system.
Call Stack (most recent call first):
cmake/OpenCVUtils.cmake:296 (ocv_check_compiler_flag)
cmake/OpenCVCompilerOptions.cmake:69 (ocv_check_flag_support)
cmake/OpenCVCompilerOptions.cmake:93 (add_extra_compiler_option)
CMakeLists.txt:495 (include)

发现这个问题时,先是使用Android Studio中链接下载的最新ndk目录(版本是17)。会报错

之后,从https://developer.android.google.cn/ndk/downloads/ 中下载最新的16b,还是报错。

最后 查看源码文件夹下opencv-3.2.0\platforms\android\android.toolchain.cmake文件里有两行注释

Android CMake toolchain file, for use with the Android NDK r5-r10d

Requires cmake 2.6.3 or newer (2.8.9 or newer is recommended).

提示使用r5到r10版本的NDK(我去网上下只剩r10e的,下载来编译后就可以通过了。)


3.下载依赖文件超时,未下载成功。比对hash码不匹配

CMake Error at D:/opencv/opencv-3.2.0/cmake/OpenCVUtils.cmake:1043 (file):

file DOWNLOAD HASH mismatch

for file: [D:/opencv/opencv_contrib-3.2.0/modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0/protobuf-cpp-3.1.0.tar.gz]  expected hash: [bd5e3eed635a8d32e2b99658633815ef]    actual hash: [d41d8cd98f00b204e9800998ecf8427e]         status: [28;"Timeout was reached"]

Call Stack (most recent call first):

D:/opencv/opencv_contrib-3.2.0/modules/dnn/cmake/download_protobuf.cmake:23 (ocv_download)
D:/opencv/opencv_contrib-3.2.0/modules/dnn/cmake/download_protobuf.cmake:51 (ocv_protobuf_download)
D:/opencv/opencv_contrib-3.2.0/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake:30 (include)
D:/opencv/opencv_contrib-3.2.0/modules/dnn/CMakeLists.txt:35 (include)

CMake Error at D:/opencv/opencv-3.2.0/cmake/OpenCVUtils.cmake:1047 (message):
Failed to download v3.1.0/protobuf-cpp-3.1.0.tar.gz. Status=28;"Timeout
was reached"
Call Stack (most recent call first):
D:/opencv/opencv_contrib-3.2.0/modules/dnn/cmake/download_protobuf.cmake:23 (ocv_download)
D:/opencv/opencv_contrib-3.2.0/modules/dnn/cmake/download_protobuf.cmake:51 (ocv_protobuf_download)
D:/opencv/opencv_contrib-3.2.0/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake:30 (include)
D:/opencv/opencv_contrib-3.2.0/modules/dnn/CMakeLists.txt:35 (include)

根据提示D:/opencv/opencv_contrib-3.2.0/modules/dnn/cmake/download_protobuf.cmake:23找到该行信息可以看出,他需要libprotobuf这个库,并且需要下载到 ${CMAKE_CURRENT_BINARY_DIR}/3rdparty/protobuf/sources 目录下,而下载地址就是 https://github.com/google/protobuf/releases ,于是我们只要手动下载3.1.0,然后把文件放到这个目录下即可。

转载于:https://blog.51cto.com/cfy10/2164855

你可能感兴趣的文章
字符串逆序输出
查看>>
[LeetCode] Length of Last Word 求末尾单词的长度
查看>>
[PHP100]留言板(一)
查看>>
boost::asio实现一个echo服务器
查看>>
标准差(standard deviation)和标准误差(standard error)你能解释清楚吗?
查看>>
Javascript 学习 笔记一
查看>>
写给自己看的小设计3 - 对象设计通用原则之核心原则
查看>>
Android学习笔记(四十):Preference的使用
查看>>
postgresql 修改字段名称
查看>>
c语言中的位移位操作
查看>>
atitit.为什么 java开发要比php开发速度慢??
查看>>
BZOJ 1396&&2865 识别子串[后缀自动机 线段树]
查看>>
java集合框架05——ArrayList和LinkedList的区别
查看>>
Kubernetes如何支持有状态服务的部署?
查看>>
vue学习笔记1-基本知识
查看>>
C#开发step步骤条控件
查看>>
text-align 属性,输入框数字向右靠
查看>>
算法笔记_069:Floyd算法简单介绍(Java)
查看>>
dubbo常见错误
查看>>
java-信息安全(十四)-初探SSL
查看>>