Win10+VS2015環境下編譯 OpenCV 3.1和opencv_contrib
阿新 • • 發佈:2019-01-03
一、下載安裝
下載以上內容並安裝opencv和cmake-gui,我的OpenCV安裝路徑為 D:\OpenCV3.1二、Cmake
做到後面才發現x86和x64的庫生成需要在Configure的部分做區分,選擇預設的VS 14 2015就是正常的生成x86庫,而再往下兩個選擇VS 14 2015 win64就是生成的x64的庫。後面的步驟基本相同,沒有什麼區別。大家各自按需選擇就好。
- 在路徑選擇位置把目錄寫好,我將編譯路徑為D:\OpenCV3.1\sources\newBulid
- 在configure裡,選擇VS14 2015(最高版本就是這個,沒有VS15),然後點finish後,他會自動配置一通,配置好了就像下圖所示,Configuring done.
- 配置完成後會顯示很多配置選項,找到OPENCV_EXTRA_MODULES_PATH,將opencv_contrib的目錄放進去。在這裡,我的目錄是D:/opencv_contrib-master/modules。今天重新配置的時候,發現下面圖配錯了,( ╯□╰ )
- 點選Generate以後,他又自動配置一通,顯示Generating done.這樣應該就好了吧,霍霍
三、VS2015 編譯
- 這時候回到MyBuild資料夾下面,就能找到新生成的OpenCV.sln
- 在解決方案資源管理器中,選中“解決方案‘OpenCV’(151個專案)”,右鍵-->重新生成解決方案。
- 依舊是資源管理器中,找到CMakeTargets中的INSTALL,右鍵-->僅用於專案-->僅生成INSTALL。注:想要Debug版(格式為opencv_xxxx310d.lib)的和Release版(格式為opencv_xxxx310.lib)的lib的話,分別選擇Debug和Release以後,生成兩遍就可以了。完成後,D:/OpenCV3.1/sources/newBulid/install下會有很多東西。
四、重新配置VS2015
- 重新配置的時候發現問題了,由於下載的OpenCV3.1.0 只有x64的庫,所以我之前配置的時候都是基於x64做的配置,然而按照上面的步驟生成的檔案只有x86的。這個時候就想到重新編譯的時候哪裡能選定並生成x64的庫咧。於是又查查詢找,發現在最開始的Cmake階段,在做Configure的時候,選擇VS14 2015 win64才能生成x64的庫。於是又重新返回去做了一遍,囧rz。
- 按照之前的配置把包含目錄修改為
- D:\OpenCV3.1\sources\newBulid\install\include
- D:\OpenCV3.1\sources\newBulid\install\include\opencv
- D:\OpenCV3.1\sources\newBulid\install\include\opencv2
- D:\OpenCV3.1\sources\newBulid\install\include
- 庫目錄修改為
- D:\OpenCV3.1\sources\newBulid\install\x64\vc14\lib
- D:\OpenCV3.1\sources\newBulid\install\x64\vc14\staticlib
- D:\OpenCV3.1\sources\newBulid\install\x64\vc14\lib
- 依賴項:
- opencv_calib3d310d.lib
- opencv_core310d.lib
- opencv_features2d310d.lib
- opencv_flann310d.lib
- opencv_highgui310d.lib
- opencv_imgcodecs310d.lib
- opencv_imgproc310d.lib
- opencv_ml310d.lib
- opencv_objdetect310d.lib
- opencv_photo310d.lib
- opencv_shape310d.lib
- opencv_stitching310d.lib
- opencv_superres310d.lib
- opencv_ts310d.lib
- opencv_video310d.lib
- opencv_videoio310d.lib
- opencv_videostab310d.lib
- ippicvmt.lib
- ……以及其他Release版本的lib,基本都和上面的一樣,但是有個別獨立的,由於密密麻麻,懶癌犯了,我目前的配置也只是把上面的d換了,應該足夠用了。各位看官要是有需要,自行新增吧