VS下配置OpenCV2.4.7常见问题
1.对于环境配置:
下载安装到一个你喜欢的环境(不一定非是C盘下)-------安装好后配置环境:【计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量中的PATH->在变量值里面添加相应的路径。
对于32位系统,就添加:
”;…… opencv\build\x86\vc10\bin”(和之前的就有有的环境变量用英文的分号“;”进行分隔)
而对于64位系统,可以两个都添加上:
”;…… opencv\build\x86\vc10\bin”
和”…… opencv\build\x64\vc10\bin”,
要添加那一个主要看你用的是编译器是32win还是64win
我这里是64位系统但是使用的编译器是32win所以就加一个32位的路径,但其实两个都加上方便编译器的切换,当切换编译器时可以直接使用而不用在进行配置。
2.新建一个项目:
可以直接建一个 Win32控制台应用程序(也可以文件-->新建-->项目-->Visual C++-->Win32控制台应用程序)新建一个项目。
直接下一步就好,根据需要选取“空项目”即可。
新建一个cpp源程序:接着在解决方案资源管理器的【源文件】处右击->添加->新建项,在工程中新建一个cpp源文件。
3.对新建项目进行环境配置:
首先找到属性管理器:
也可以通过视图-->属性管理器
在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories(右键属性,或者双击)即可打开属性页面。
将你安装的opencv以下三个目录引进:
······\opencv\build\include
······\opencv\build\include\opencv
······\opencv\build\include\opencv2
在库目录中引入opencv的lib库函数:
······\opencv\build\x86\vc10\lib(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”系列的错误