最近OpenCV更新到了3.4.1,下載了OpenCV3.4.1的源碼哀墓,想編譯一個(gè)VS2013X64的SDK趁餐,在CMake的時(shí)候一般會(huì)下載一些依賴(ffmpeg.dll,ippicv.zip)等。但是現(xiàn)在宿主機(jī)沒有網(wǎng)絡(luò)篮绰,CMake-Configure就會(huì)失敗···后雷,或者有時(shí)候網(wǎng)絡(luò)很差,下載速度極慢或者干脆一直下載失敗···CMake-Configure也會(huì)失敗吠各。失敗提示如下圖:
這幾個(gè)錯(cuò)誤是類似的就是Download failed臀突。那只能手動(dòng)下載了(沒網(wǎng)絡(luò)的換個(gè)有網(wǎng)的下載,下載一直失敗也直接手動(dòng)下載)贾漏,那么問題來了候学。
去哪里下載?
下載后放哪里纵散?
仔細(xì)看錯(cuò)誤信息梳码,可以打開download log file看看,如提示伍掀,我的在D:/Kits/OpenCV/opencv-source/opencv-3.4.1/build/CMakeDownloadLog.txt掰茶,打開可以看到如下內(nèi)容:
下載獲取opencv_ffmpeg.dll的過程
use_cache "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/.cache"
do_copy "opencv_ffmpeg.dll" "b8120c07962d591e2e9071a1bf566fd0" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll" "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/build/3rdparty/ffmpeg"
missing "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/build/3rdparty/ffmpeg/opencv_ffmpeg.dll"
cmake_download "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/.cache/ffmpeg/b8120c07962d591e2e9071a1bf566fd0-opencv_ffmpeg.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll"
timeout on name lookup is not supported
Trying 151.101.0.133...
TCP_NODELAY set
Connected to raw.githubusercontent.com (151.101.0.133) port 443 (#0)
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 1/3)
schannel: disabled server certificate revocation checks
schannel: sending initial handshake data: sending 199 bytes...
schannel: sent initial handshake data: sent 199 bytes
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 2/3)
schannel: failed to receive handshake, need more data
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 2/3)
schannel: failed to receive handshake, SSL/TLS connection failed
Closing connection 0
schannel: shutting down SSL/TLS connection with raw.githubusercontent.com port 443
Send failure: Connection was reset
schannel: failed to send close msg: Failed sending data to the peer (bytes written: 4294967295)
schannel: clear security context handle
下載獲取opencv_ffmpeg_64.dll的過程
do_copy "opencv_ffmpeg_64.dll" "dc9c50e7b05482acc25d6ce0ac61bf1d" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg_64.dll" "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/build/3rdparty/ffmpeg"
missing "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/build/3rdparty/ffmpeg/opencv_ffmpeg_64.dll"
cmake_download "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/.cache/ffmpeg/dc9c50e7b05482acc25d6ce0ac61bf1d-opencv_ffmpeg_64.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg_64.dll"
timeout on name lookup is not supported
Trying 151.101.0.133...
TCP_NODELAY set
Connected to raw.githubusercontent.com (151.101.0.133) port 443 (#0)
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 1/3)
schannel: disabled server certificate revocation checks
schannel: sending initial handshake data: sending 199 bytes...
schannel: sent initial handshake data: sent 199 bytes
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 2/3)
schannel: failed to receive handshake, need more data
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 2/3)
schannel: failed to receive handshake, SSL/TLS connection failed
Closing connection 0
schannel: shutting down SSL/TLS connection with raw.githubusercontent.com port 443
Send failure: Connection was reset
schannel: failed to send close msg: Failed sending data to the peer (bytes written: 4294967295)
schannel: clear security context handle
下載獲取ffmpeg_version.cmake的過程
do_copy "ffmpeg_version.cmake" "3b90f67f4b429e77d3da36698cef700c" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/ffmpeg_version.cmake" "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/build/3rdparty/ffmpeg"
missing "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/build/3rdparty/ffmpeg/ffmpeg_version.cmake"
cmake_download "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/.cache/ffmpeg/3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/ffmpeg_version.cmake"
timeout on name lookup is not supported
Trying 151.101.0.133...
TCP_NODELAY set
Connected to raw.githubusercontent.com (151.101.0.133) port 443 (#0)
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 1/3)
schannel: disabled server certificate revocation checks
schannel: sending initial handshake data: sending 199 bytes...
schannel: sent initial handshake data: sent 199 bytes
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 2/3)
schannel: failed to receive handshake, need more data
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 2/3)
schannel: failed to receive handshake, SSL/TLS connection failed
Closing connection 0
schannel: shutting down SSL/TLS connection with raw.githubusercontent.com port 443
Send failure: Connection was reset
schannel: failed to send close msg: Failed sending data to the peer (bytes written: 4294967295)
schannel: clear security context handle
下載獲取ippicv_2017u3_win_intel64_general_20170822.zip的過程
do_unpack "ippicv_2017u3_win_intel64_general_20170822.zip" "0421e642bc7ad741a2236d3ec4190bdd" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/dfe3162c237af211e98b8960018b564bc209261d/ippicv/ippicv_2017u3_win_intel64_general_20170822.zip" "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/build/3rdparty/ippicv"
cmake_download "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/.cache/ippicv/0421e642bc7ad741a2236d3ec4190bdd-ippicv_2017u3_win_intel64_general_20170822.zip" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/dfe3162c237af211e98b8960018b564bc209261d/ippicv/ippicv_2017u3_win_intel64_general_20170822.zip"
timeout on name lookup is not supported
Trying 151.101.0.133...
TCP_NODELAY set
Connected to raw.githubusercontent.com (151.101.0.133) port 443 (#0)
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 1/3)
schannel: disabled server certificate revocation checks
schannel: sending initial handshake data: sending 199 bytes...
schannel: sent initial handshake data: sent 199 bytes
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 2/3)
schannel: failed to receive handshake, need more data
schannel: SSL/TLS connection with raw.githubusercontent.com port 443 (step 2/3)
schannel: failed to receive handshake, SSL/TLS connection failed
Closing connection 0
schannel: shutting down SSL/TLS connection with raw.githubusercontent.com port 443
Send failure: Connection was reset
schannel: failed to send close msg: Failed sending data to the peer (bytes written: 4294967295)
schannel: clear security context handle
CMake后會(huì)發(fā)現(xiàn)opencv-source根目錄下會(huì)出現(xiàn)一個(gè).cache的文件夾,里面有需要下載的內(nèi)容蜜笤,如果下載失敗所有的內(nèi)容都是0KB如下圖:
再看看CMakeDownloadLog.txt的第一句:use_cache "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/.cache"說的就是這個(gè)意思濒蒋。在看看第二句:do_copy "opencv_ffmpeg.dll" "b8120c07962d591e2e9071a1bf566fd0" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll" "D:/Kits/OpenCV/opencv-source/opencv-3.4.1/build/3rdparty/ffmpeg",說的是從https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll這個(gè)網(wǎng)址下載opencv_ffmpeg.dll到D:/Kits/OpenCV/opencv-source/opencv-3.4.1/build/3rdparty/ffmpeg把兔,其MD值為b8120c07962d591e2e9071a1bf566fd0沪伙,然后拷貝到.cache對應(yīng)的文件夾下(該文件名為MD值+'-'+下載的文件名)瓮顽。那么這個(gè)文件就類似腳本進(jìn)行自動(dòng)化下載,那么我們就知道手動(dòng)要怎么搞了焰坪。
回答-去哪里下載:
https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll
回答-下載后放哪里:
很顯然下載后放.cache下對應(yīng)的地方趣倾,然后改其名字為MD值+'-'+下載的文件名。比如opencv_ffmpeg.dll這個(gè)文件下載后凡在.cache下的ffmpeg下某饰,然后改名為b8120c07962d591e2e9071a1bf566fd0-opencv_ffmpeg.dll替換原來0KB的那個(gè)文件儒恋。
好了,接下來就是重復(fù)以上步驟黔漂,將opencv_ffmpeg_64.dll诫尽,ffmpeg_version.cmake,ippicv_2017u3_win_intel64_general_20170822.zip到對應(yīng)的網(wǎng)址下載并放到.cache下對應(yīng)的文件夾下然后改名字炬守。最終效果如下圖:
最后再次CMake-Configure就成功通過了牧嫉!
————————————————
版權(quán)聲明:本文為CSDN博主「KayChanGeek」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議减途,轉(zhuǎn)載請附上原文出處鏈接及本聲明酣藻。
原文鏈接:https://blog.csdn.net/KayChanGEEK/article/details/79919417