(详细)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),确定。

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

 

运行。。。。结束

 

posted @ 2019-04-14 23:21  星海violet  阅读(7448)  评论(0编辑  收藏  举报