cmake编译OpenCV无法下载ADE文件

一、问题描述


在cmake编译OpenCV时提示错误:

CMake Error at modules/gapi/cmake/DownloadADE.cmake:23 (add_library):
No SOURCES given to target: ade Call Stack (most recent call first):
modules/gapi/cmake/init.cmake:20 (include)
cmake/OpenCVModule.cmake:298 (include) cmake/OpenCVModule.cmake:361
(_add_modules_1) cmake/OpenCVModule.cmake:385 (ocv_glob_modules)
CMakeLists.txt:931 (ocv_register_modules)

根据提示,查看DownloadADE.cmake文件:
cmake编译OpenCV无法下载ADE文件_第1张图片
分析:
第一行设置是解压后的文件要放入的目的文件夹,即OpenCV编译后的文件夹下的3rdparty/ade,示意如下图:(这里还未编译成功,文件夹为空)
cmake编译OpenCV无法下载ADE文件_第2张图片
第二行设置ADE的压缩包名字为v0.1.1f.zip,第三行设置解压后的子目录名字为v0.1.1f,该zip文件的MD5值为b624b995ec9c439cbc2e9e6ee940d3a2,第十一行指明下载ADE的zip文件地址为https://github.com/opencv/ade/archive/。cmake编译OpenCV时出现错误提示的原因是这个下载地址已经失效。

二、解决方法

ADE的新地址是https://github.com/opencv/ade/releases/tag/v0.1.1f
可以根据需要选择下载的ADE版本,这里我选择的是ade-0.1.1f.zip,(如果选择的是其他版本也可以,修改对应的MD5值即可,下有详细说明操作)在本地目录D:\OpenCV\opencv\download_ade下。cmake编译OpenCV无法下载ADE文件_第3张图片
对于下载下来的zip文件,我们需要获得它的MD5值。Windows+R打开cmd,跳转到zip文件所在的文件夹下,输入命令 certutil -hashfile ade-0.1.1f.zip MD5
在这里插入图片描述
即 certutil -hashfile [文件名] MD5 。这里我下载的ade-0.1.1f.zip的MD5值与原来DownloadADE.cmake中的一致,不需要修改,如果不一致,替换一下就ok。

修改DownloadADE.cmake文件,如下图所示:
cmake编译OpenCV无法下载ADE文件_第4张图片

第一个红框内的Download.cmake中的文件名要与下载的zip文件保持一致。第二个红框内的地址是zip文件下载的位置。然后就可以编译通过啦!此时编译后的文件夹里的ade就有了内容。

cmake编译OpenCV无法下载ADE文件_第5张图片

三、一些分享


1)这里用到了哈希值校验,哈希校验可以是计算文件的MD5、SHARC32值等,确保文件的正确性,并且经过复制之后MD5的值并不会改变,例如百度网盘根据MD5值来判断文件是否相同。
2)file://是一种文件传输协议,全称是本地文件传输协议,类似于类似于https://(安全超文本传输协议)。file协议主要用于访问本地计算机中的文件,相当于才此电脑中打开文件,使用file协议的格式如下:file://本地文件路径,如图中的file://D:/OpenCV/opencv/download_ade/,在这个下载ADE的问题下,就是获取这个本地计算机的这个目录下相应MD5值的文件。
如果这篇文章有帮到你,是我的荣幸!转载请注明出处,谢谢你啦!

你可能感兴趣的:(opencv,计算机视觉,人工智能,c++)