VS下配置OpenCV2.4.7常见问题

1.对于环境配置:

下载安装到一个你喜欢的环境(不一定非是C盘下)-------安装好后配置环境:【计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量中的PATH->在变量值里面添加相应的路径。

对于32位系统,就添加:

”;…… opencvuildx86vc10in”(和之前的就有有的环境变量用英文的分号“;”进行分隔)

而对于64位系统,可以两个都添加上:

”;…… opencvuildx86vc10in”

和”…… opencvuildx64vc10in”,

要添加那一个主要看你用的是编译器是32win还是64win

我这里是64位系统但是使用的编译器是32win所以就加一个32位的路径,但其实两个都加上方便编译器的切换,当切换编译器时可以直接使用而不用在进行配置。

2.新建一个项目:

可以直接建一个 Win32控制台应用程序(也可以文件-->新建-->项目-->Visual C++-->Win32控制台应用程序)新建一个项目。

直接下一步就好,根据需要选取“空项目”即可。

新建一个cpp源程序:接着在解决方案资源管理器的【源文件】处右击->添加->新建项,在工程中新建一个cpp源文件。

3.对新建项目进行环境配置:

首先找到属性管理器:

也可以通过视图-->属性管理器

在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories(右键属性,或者双击)即可打开属性页面。

将你安装的opencv以下三个目录引进:

······opencvuildinclude

······opencvuildincludeopencv

······opencvuildincludeopencv2 

在库目录中引入opencv的lib库函数:

······opencvuildx86vc10lib(x86这个是编译器win32还是64,与操作系统无关。vc10是指VS2010我用的就是这个版本)

 

配置链接库:“属性管理器”工作区中,鼠标右键项目-->属性--》调节配置选项Debug|Release-->【通用属性】 ->【链接器】->【输入】->【附加的依赖项】

Debug下添加以下库:

opencv_calib3d247d.lib
opencv_contrib247d.lib
opencv_core247d.lib
opencv_features2d247d.lib
opencv_flann247d.lib
opencv_gpu247d.lib
opencv_highgui247d.lib
opencv_imgproc247d.lib
opencv_legacy247d.lib
opencv_ml247d.lib
opencv_nonfree247d.lib
opencv_objdetect247d.lib
opencv_ocl247d.lib
opencv_photo247d.lib
opencv_stitching247d.lib
opencv_superres247d.lib
opencv_ts247d.lib
opencv_video247d.lib
opencv_videostab247d.lib

 Release下添加一下库(直接复制就可以)

opencv_calib3d247.lib
opencv_contrib247.lib
opencv_core247.lib
opencv_features2d247.lib
opencv_flann247.lib
opencv_gpu247.lib
opencv_highgui247.lib
opencv_imgproc247.lib
opencv_legacy247.lib
opencv_ml247.lib
opencv_nonfree247.lib
opencv_objdetect247.lib
opencv_ocl247.lib
opencv_photo247.lib
opencv_stitching247.lib
opencv_superres247.lib
opencv_ts247.lib
opencv_video247.lib
opencv_videostab247.lib

开心的觉得可以用了结果出现了这样的错误

不知道哪里错了,查了一下:

1.我解决是项目属性那里状态不是Debug状态而是活动(Debug),调到debug就可以正常运行了。

2. 网上解释:

这算是opencv的一个bug,工程属性里面关于带d和不带d的lib文件的附加依赖项的问题,就算配置好了每次想debug和release下都运行还得手动在工程属性里面加。当得到这样的错误时,可以把调试方式改一改,debug和release互换:

或者打开当前工程(注意是当前工程的属性页,不是通用属性页)的属性页,debug或者release哪个报错,就把对应的带d或不带d的lib添加到【“当前”工程属性】->【链接器】->【输入】->【附加的依赖项】下即可。

刚开始用遇到的错误就这一个,先把网上的收藏一下:相关网址:http://blog.csdn.net/poem_qianmo/article/details/19809337/

1. 找不到core.h

出现这个问题是因为include的时候粗心大意了。

如果你的版本是2.4.6。在这个版本下,opencv根文件夹下面就有个include,但我们配置的时候如果包含的是他就坑爹了。

正确的应该填build里面的那个include。

 2.无法解析的外部命令

这个问题其实上面有过解释了,不管你是32位还是64位操作系统,只用管你用win32编译器还是X64 编译器。

其实配置选择什么跟64位还是32位系统没有直接的关系,而是在于你在编译你的程序的时候是使用那个编译器。

编译器是win32,就用x86

编译器是X64,就用X64。不过一般情况下,都是用的win32的X86编译器。所以,

无论32还是 64位操作系统,配置文件最好都选择x86版的。

3.关于形如--error LNK2005:xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义

出现这个问题,把静态库不包含就行了。

 4. 应用程序无法正常启动0xc000007b

Lib包含的问题。也许你同时包含了X86和X64的,或者包含出错错了。或者是对于windows 8 64位,dll要放在和System32文件夹同级的SysWOW64文件夹中。

5.无法打开文件“opencv_ml249d.lib”系列的错误

关于LINK : fatal error LNK1104: 无法打开文件“opencv_ml249d.lib”,解决方法是:项目->属性管理器->Debug|Win32->Microsoft.Cpp.Win32.userDirectories中的属性页面->连接器->常规里面的附加库目录中加入相应的lib文件目录。
 
这个错误主要是因为包含的库目录中,和包含的附加依赖项不能相互对应照成的。
也许是“opencv_ml249d.lib“多加了一个空格,成了”opencv_ml249d. lib“,就会报错。
遇到这个问题,检查三个方面:
 
1.检查第四步”4.工程库(lib)目录的配置“库目录中的路径是否准确。
2.检查第五步”5.链接库的配置“中“附加依赖项”的格式有没有问题,有没有多空格,版本号248,249什么的有没有问题,有没有多一个空格,少一个点什么的。
3.第二步环境变量的配置是否准确。
 
 
以上错误仅为收藏!!!
原文地址:https://www.cnblogs.com/linmengran/p/5898303.html