opencv 4.0.0 + VS2015 win10下 cmake


一、下載opencv對應安裝包及擴展包

(1)opencv安裝包下載

Opencv_contribute GitHub 下載點擊opencv_contrib進入后搜索下載所需要的版本

 

 

因國內鏡像原因,下載速度會較慢,且容易斷掉,這里提供4.0.0版本的網盤下載地址:

鏈接: https://pan.baidu.com/s/16olmX0csQRdlBhEotqn_tA 提取碼: ev2y 

(2)下載解壓后的文件夾如下:

其中:

opencv是.exe安裝解壓后的文件夾,opencv_contrib-4.0.0是從github下載的擴展包,

opencv-4.0.0_build_x64是用於后面cmake存放編譯文件的自定義文件夾。

二、cmake下載

官網下載:https://cmake.org/download/

安裝時選擇對應平台即可,我是選擇win64 x64.

三、cmake

(1)configure

1、2 步后點開configure

 設置完點擊Finish

configure后出現如下紅色字體警告的解決方法:

1.是否斷網,若為斷網,重新連接后再次configure;
2.因國內網絡原因無法自動下載,則進行手動下載:

 1)打開編譯輸出的文件夾,找到打開CMakeDownloadLog.txt

部分信息如下:

 1 #use_cache "F:/opencv400/opencv/sources/.cache"
 2 #do_copy "opencv_ffmpeg.dll" "849286ccc527c99e5a218b67f13c6e8c" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll" "F:/opencv4.0.0/opencv-4.0.0_build_x64/3rdparty/ffmpeg"
 3 #missing "F:/opencv4.0.0/opencv-4.0.0_build_x64/3rdparty/ffmpeg/opencv_ffmpeg.dll"
 4 #check_md5 "F:/opencv400/opencv/sources/.cache/ffmpeg/849286ccc527c99e5a218b67f13c6e8c-opencv_ffmpeg.dll"
 5 #mismatch_md5 "F:/opencv400/opencv/sources/.cache/ffmpeg/849286ccc527c99e5a218b67f13c6e8c-opencv_ffmpeg.dll" "d41d8cd98f00b204e9800998ecf8427e"
 6 #delete "F:/opencv400/opencv/sources/.cache/ffmpeg/849286ccc527c99e5a218b67f13c6e8c-opencv_ffmpeg.dll"
 7 #cmake_download "F:/opencv400/opencv/sources/.cache/ffmpeg/849286ccc527c99e5a218b67f13c6e8c-opencv_ffmpeg.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll"
 8 # timeout on name lookup is not supported
 9 #   Trying 173.252.110.21:443...
10 # TCP_NODELAY set
11 # connect to 173.252.110.21 port 443 failed: Timed out
12 # Failed to connect to raw.githubusercontent.com port 443: Timed out
13 # Closing connection 0
14 # 

大致意思,就是無法從:"F:/opencv400/opencv/sources/.cache"復制  簽名為"849286ccc527c99e5a218b67f13c6e8c"、下載地址為

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll"的

"opencv_ffmpeg.dll"到"F:/opencv4.0.0/opencv-4.0.0_build_x64/3rdparty/ffmpeg/opencv_ffmpeg.dll"

因此,我們直接從下載地址下載"opencv_ffmpeg.dll"更改名字為"簽名-opencv_ffmpeg.dll"(-opencv_ffmpeg.dll只是對照所貼文本舉例子,具體需對照txt內容更改)至"F:/opencv400/opencv/sources/.cache"

或者不更改名字直接存放到"F:/opencv4.0.0/opencv-4.0.0_build_x64/3rdparty/ffmpeg/"。

其他缺失文件照以上步驟進行替換。

注意:打開下載.cmake時不是直接下載文件,而是網頁顯示,此時右鍵另存為即可:

 2)如果有其他缺失的文件,如安裝包,對照CMakeDownloadLog.txt下載改名存放至對應文件夾即可,下載完后重新configure,configure done后不會出現之前的警告項。

 3)勾選OPENCV_ENABLE_NONFREE,並選擇路徑至我們擴展包下的modules文件夾

4)后續只生成一個opencv_world400.dll文件時則需勾選以下選項

 

再次點擊Configure后如果還是會有文件缺少的情況,照上面步驟手動下載。下載完后繼續Configure直至提示框沒有警告(PS:太艱辛了)。

(2)如果configure后信息輸出窗口沒有紅色警告,點擊Generate,Generate done 后 Open Project,會自動VS打開解決方案 Opencv.sln

四、VS編譯生成Opencv庫文件

1、選擇模式及對應平台后生成解決方案;

 

 問題及解決(未出現可直接進入第2步):出現LNK1104.... cannot open file '…\lib\Debug\opencv_world40d.lib’的問題,網上查了一下說是win10 SDK版本低的問題,所以就先下載安裝一個較最新的SDK,

划重點:VS2015 對應的win10 SDK不要超過14393,看這里:https://blog.csdn.net/Namcodream521/article/details/78493921,(PS:這會我已經裝了18362...)

win10 SDK下載地址:https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk,(PS:划重點)這個時候需要把舊的SDK版本卸載,然后重新Configure、Generate、Open Project。

這時在cmake里面會提示win10 SDK版本,如果沒卸載舊的SDK,它還是會使用舊的make(PS:一把鼻涕一把淚啊...)...

 Open Project后進入VS需先設置win 10 SDK,不能直接生成(PS:又有一個坑...),設置過程如下圖:

 確定后生成解決方案(PS:還是會有錯誤提示,2333....),同樣是LNK1104.... cannot open file '…\lib\Debug\opencv_world400d.lib’這個錯誤,重新定位一下,lib沒生成,那就先單獨生成opencv_world400d.lib,

找到opencv_world,右鍵僅生成該項目,出現rc.exe未啟動(PS:定位到了問題,仿佛看到了希望)

按網上所說,將rc.exe的路徑添加至系統變量,重啟VS...

 

 繼續單獨生成opencv_world400.lib...還是不行(PS:崩潰)

 這個時候,試着把windows目標平台 切換為8.1,神奇般的可以正常生成了.所以我一開始不能生成的原因可能不是因為我的win10 sdk太低,而是太高,導致不支持VS2015...出現rc.exe無法啟動的各種情況.

 

 

 2、僅生成INSTALL

 

 

 五、編譯完成

此時該目錄下的文件及文件夾就跟從官網下載.exe安裝解壓后的一樣.....

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM