(詳細)vs2017配置opencv,一次性配置項目環境屬性,解決遇到的無法打開opencv2/core/core.cpp


一.根據自己電腦型號下載合適的opencv,我的是3.4.1

網址:https://opencv.org/releases.html#

 

二。解壓

雙擊下載好的安裝包,Extract to到自己想安裝的路徑(路徑最好不要有中文!!)

解壓路徑后點Extract即可完成解壓,解壓后會自動生成一個opencv的文件夾

三。配置系統變量

右擊此電腦——屬性——高級系統設置——環境變量——Path——新建

將你解壓的opencv文件夾中的***opencv\build\x64\vc14\bin路徑添加到當中

點擊確定,確定。

 

四。文件配置

1.找到OpenCV的opencv_world341d.dll文件,在**\opencv\build\x64\vc14\bin 路徑下

然后把路徑下的3個.dll文件復制到C:\Windows\System32 路徑下 。否則新建項目后會報錯:找不到 .dll(動態鏈接庫文件)

2.將**\opencv\build\x64\vc14\bin目錄下面的opencv_world341.dll和opencv_world341d.dll文件復制到C:\Windows\SysWOW64這個文件夾里

五。配置vs2017屬性:

1、新建一個空項目或控制台項目

2、進入屬性管理器,菜單欄->視圖->其他窗口->屬性管理器

3、對Debug|X64進行配置,右鍵Microsoft.Cpp.x64.user,點擊屬性

4、這里我們對屬性中的 VC++目錄->包含目錄->編輯:

  加入安裝的完整路徑:**\opencv\build\include

            **\opencv\build\include\opencv

            **\opencv\build\include\opencv2

5.VC++目錄->庫目錄->編輯

  加入:**\opencv\build\x64\vc14\lib

6.鏈接器->輸入->附加依賴項中加入 :opencv_world341d.lib

7.對項目的屬性進行配置:

  視圖—>其他視圖->屬性管理器->

  對Release|X64進行配置,右鍵Microsoft.Cpp.x64.user,點擊屬性

  鏈接器->輸入->附加依賴項中加入:opencv_world341d.lib

注意:如果是opencv其他版本,只需要將將上述的依賴項文件稍作修改即可;eg:如果是opencv版本3.4.0,只需要將dll名字改為opencv_world340d.lib即可

8.配置結束,但是vs這一欄要用x64,符合上面的配置,不然會報錯,至於Debug下面會解釋

 

六。測試

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

using namespace cv;

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

 

 七。可能遇到的各種問題:

1.找不到.dll:

找到OpenCV的opencv_world341d.dll文件,在**\opencv\build\x64\vc14\bin 路徑下

然后把路徑下的3個.dll文件復制到C:\Windows\System32 路徑下 

2.啟動程序后無法打開源文件 iostream:

   此處問題還可能出在包含目錄上。在要把從父級或項目默認設置繼承復選框勾上,因為包含目錄修改了系統的include宏的值。在屬性中的包含目錄、源目錄等中勾選從父級或項目默認設置繼承,(我用的這個方法)或者全局范圍內尋找#include<xxxx.h>中的xxxx.h的搜索目錄。(這是百度到的,但是我沒用這個方法,)還有一個方法我也沒用,畢竟windows文件不想隨意動,詳看https://blog.csdn.net/hackerwin7/article/details/8456536

3.無法打開opencv2/core/core.cpp

(1)先看包含目錄有沒有問題:

  **\opencv\build\include

  **\opencv\build\include\opencv

  **\opencv\build\include\opencv2

這樣的路徑可能存在:#include opencv2/core/core.hpp 中opencv2已經在包含目錄中的問題。。。。

所以只要把路徑中重復的opencv2去掉就好啦。因為opencv中很多的相關文件都包含了opencv2,

所以,把‘包含目錄’中的第三項改成和第一項一樣的(不能刪第一項,還必須是三項)

  (2)如果上面的方法還不行,就把包含目錄改回去,然后看上面圖中vs的debug,x64有沒有問題

可能是因為visual studio的生成模式Debug/Release搞的鬼,跟代碼無關。

其實VS提供的Debug和Release兩種調試模式完全使用不同的兩套類庫,所以在設置的時候一定要看清,看下圖:

這兩個要一致,不然哭死……

 

八。怎樣一次性配好OpenCv,后面建項目時不再一次次配環境?

(1)打開你建成功的第一個測試文件,點擊:視圖,其他窗口,屬性管理器,右擊Debug|64(根據你的配置來選,可以都生成一下,以防萬一,我只生成了對應的一個,是沒有問題的),添加屬性表,

編輯名字,保存,記住保存的位置,此時Debug|64下已經有了屬性表;

(如果是新建的項目,需要雙擊屬性表進行上面講解的配置……包含目錄啥的)

(2)新建一個項目,直接找到屬性管理器,右擊Debug|64,添加現有屬性表,找到剛剛存的屬性表(后綴是 .props),確定。

以后每次建項目就可以直接添加屬性表了。

 

運行。。。。結束

 


免責聲明!

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



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