Visual Studio2013 配置opencv3.3.0 x64系統


注:小白一個,第一次寫博客,可能會有一些理解上的錯誤,只此記錄自己測試成功的坎坷之路,已備以后查看,同時給有需要之人。

我是win10 64 位,之前安裝了visual studio 2013, 現在要安裝最新版本的 opencv 3.3.0.(可能換成vs2015 配置要容易一些。)
opencv 最新發布的幾個版本(已知的 3.3.0 和3.2.0)默認支持 vs 2015。 即直接從官網下載的壓縮包帶有vc14 的字樣,代表了vs 2015版本,vs2013相應的應該是vc12。所以不能直接應用於vs2013版本。我當時直接下載安裝出錯嘗試修復無效,后來才發現好像不支持vs2013. 參考了多篇博客,反反復復終於運行成功。

參考鏈接:
http://blog.csdn.net/guduruyu/article/details/68482967
http://www.cnblogs.com/dosrun/archive/2013/01/13/2858373.html
http://blog.csdn.net/tfy1028/article/details/8660823
http://blog.csdn.net/cv_jason/article/details/70037545

這一部分主要參考http://blog.csdn.net/guduruyu/article/details/68482967

1.opencv 源碼 下載:
1)官網
2). Gihub
兩個有一點區別是 在后面生成的.lib的文件名不一樣,(Gihub上是d,官網是OFF,后面就知道了)
Gihub 下載:

2.將源碼壓縮包解壓到編譯目錄下,並在同一目錄下新建build_64和msvc_2013兩個文件夾,前者作為Cmake編譯目錄,后者作為編譯后的安裝目錄。

3.Cmake 3.8.0下載 鏈接 http://blog.csdn.net/cv_jason/article/details/70037545(來自http://blog.csdn.net/cv_jason/article/details/70037545) 或者從官網下,要下載相應版本。我不想折騰,直接用的上面這個鏈接.
下載完成之后 雙擊安裝。比較簡單,具體我也不懂,直接默認選項。

4.開始菜單 比較明顯的可以找到Cmake 應用程序,打開CMake,開啟編譯選項的配置。設置好source code目錄和build目錄,點擊Configure按鈕,選擇VS版本,這里選擇的是win64 VS2013,選擇本地編譯器作為默認編譯器,點finish,即開始配置過程。(配置過程需要一段時間,可以先干點其他的,等待初步配置完成,注意保證網絡的暢通,Cmake的過程中需要下載第三方庫)
注意:路徑的即為剛才解壓出來的opencv所在的目錄。


5.初步配置完成,如下圖所示。需要修改一下相關選項,這里只需要修改兩個地方,其他默認即可,一是將CMAKE_INSTALL_PREFIX修改成之前創建的msvc2013_64目錄,二是點擊add Entry按鈕,添加CMAKE_DEBUG_POSTFIX選項,值設為“d”,用於區分debug和release版本,否則編譯安裝時debug版本會被release版本覆蓋。設置好后,再點擊configure,配置完成后點擊“generate”生成編譯工程。

6.VS2013下編譯與安裝。經過上一步后,我們在build_64目錄下即可看到CMake生成的編譯工程,如下圖所示。
打開opencv.sln,用vs2013打開,顯示“正在分析解決方案中的文件...”,解析完成后.

注意此時 要考慮在 x64 下進行編譯,若debug 旁邊的小框中沒有x64 選項,參考http://blog.csdn.net/tfy1028/article/details/8660823 中的步驟2.( 右鍵解決方案->屬性,

將平台選為X64,若無此選項,則點擊配置管理器,選擇X64平台,若無則新建一個X64平台並選中。)

先在Debug下對工程進行編譯(BUILD->Build Solution)(即,生成——生成解決方案...^_^很傻的自己),編譯要等一會完成(其中,可能會有報錯,出現缺少python27_d.lib相關的錯誤,可以不必理會),完成后,將INSTALL設置為啟動工程(在INSTALL右鍵->Set as startup project),然后進行安裝(BUILD->Project Only->Build Only Install);再在Release下進行編譯和安裝(和Debug類似)。

7.添加環境變量。安裝完成后,我們在vs2013_64目錄下即可看到一個include文件夾和x64文件夾,我們在x64目錄下逐級找到bin文件夾,將bin的路徑添加到系統的環境變量里,如下圖所示。

8.之后需要新建工程,.cpp文件,然后


配置包含目錄 加上三個路徑 (找到自己相應的路徑,include下有兩個文件夾分別為opencv,opencv2)
D:anzhuang\opencv-3.3.0\opencv\build\include;
D:anzhuang\opencv-3.3.0\opencv\build\include\opencv;
D:anzhuang\opencv-3.3.0\build\include\opencv2;

在  庫目錄 加上路徑  D:anzhuang\opencv-3.3.0\opencv\build\x64\vc12\lib;(也是找到相應的bin文件夾的位置,這里出現了vc12,而不是直接安裝opencv3.3.0出現的vc14)

完成后點左側的 鏈接器-輸入,
在 附加依賴項 加上 lib文件夾中的所有項。
注意:最后一位是d的在前,無d 的在后面。
之前有提到過Gihub 和官網上有一些不一樣的地方,就是在這里。 從官網上下載的應該把“d”改為“OFF”,看一下lib文件夾就知道了。兩種都可以運行。已經在不同的電腦上測試過。
opencv_calib3d330d.lib
opencv_core330d.lib
opencv_dnn330d.lib
opencv_features2d330d.lib
opencv_flann330d.lib
opencv_highgui330d.lib
opencv_imgcodecs330d.lib
opencv_imgproc330d.lib
opencv_ml330d.lib
opencv_objdetect330d.lib
opencv_photo330d.lib
opencv_shape330d.lib
opencv_stitching330d.lib
opencv_superres330d.lib
opencv_video330d.lib
opencv_videoio330d.lib
opencv_videostab330d.lib
opencv_calib3d330.lib
opencv_core330.lib
opencv_dnn330.lib
opencv_features2d330.lib
opencv_flann330.lib
opencv_highgui330.lib
opencv_imgcodecs330.lib
opencv_imgproc330.lib
opencv_ml330.lib
opencv_objdetect330.lib
opencv_photo330.lib
opencv_shape330.lib
opencv_stitching330.lib
opencv_superres330.lib
opencv_video330.lib
opencv_videoio330.lib
opencv_videostab330.lib

這樣配置完成后,以后每次新建一個項目都需要重新設置包含目錄和庫目錄以及 附加依賴項lib,一個技巧是可以設置 新項目屬性表 並保存,之后 只需 添加現有屬性表即可。
具體參考一下鏈接:
https://www.zhihu.com/question/24400428

9.測試。網上找的簡單測試程序。

    #include<iostream>
    #include<core/core.hpp>
    #include<highgui/highgui.hpp>

    
      using namespace cv;


    int main()
    {
// 讀入一張圖片(游戲原畫)
Mat img = imread("1.jpg");
// 創建一個名為 "游戲原畫"窗口
namedWindow("游戲原畫");
// 在窗口中顯示游戲原畫
imshow("游戲原畫", img);
// 等待6000 ms后窗口自動關閉
waitKey(6000);
    }

如果有問題,可以先嘗試重啟試一下,好像電腦配置環境變量時需要重啟。

細節可能有些地方沒有描述清楚,可以參考那幾個鏈接。

補充:好像會出現 “無法查找或打開 PDB 文件”的錯誤信息, 但是可以運行

收獲:測試 運行成功很開心。
以后的道路還很長,折騰着折騰着可能也就習慣了。
大神好多,要是能知道原理就好了。不過好像也不太重要。


免責聲明!

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



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