【OpenCV配置之二】VS2013:LNK2038 RuntimeLibrary不匹配问题(Release Debug混合错误)

最近为了运行从github上下载的背景算法提取代码,我为我的Visual Studio配置了OpenCV和Boost1.61的环境。
OpenCV大家都很熟悉,Boost库是由Boost社区开发支持的可面向C++的标准程序库,其中也包括graph这种具有工业强度的库供广大程序员使用。
我在参考了网上配置的OpenCV教程,采用2.4.10版本,配置之后出现了
LNK2038的错误:mismatch detected for ‘_ITERATOR_DEBUG_LEVEL’: value ‘0’ doesn’t match value ‘2’ in xxx.obj
大概就是编译中不匹配的问题,经网上搜索提示是VS2013中Release和Debug两个版本代码生成的问题,然后解决方案参考如下:
项目属性 -> 配置属性 -> C/C++ -> 代码生成 -> 运行库

都设置一样就行了 多线程调试(/MTd),具体是MT MD MTd MDd的修改还是参考你报错的信息。具体说明参考如下:
http://blog.csdn.net/xiaowei_cqu/article/details/7586449
https://msdn.microsoft.com/en-us/library/2kzt1wy3(VS.80).aspx

但是按照以上修改之后,LNK2038的问题依然没有解决,还报一些找不到头文件和其他库文件的错误,于是我察觉到是OpenCV配置的时候没有考虑编译版本和平台。
这里如果你也遇到和我一样的问题,可以参考一下。

在配置OpenCV方面
百度有很多类似的配置方案,具体就不详细说了,可参考这里http://blog.csdn.net/u010128736/article/details/50545532

但是不知道是我个人电脑的问题还是运行的VS2013项目问题,我通过以上方法仍然无法正常运行程序,报错大概原因是Release和Debug之间混合使用问题,引用一句大神原话:(文章末尾我会附上出处)
In short you are probably mixing release and debug dlls.

也正是这句话让我认识到问题所在,于是我重新配置的OpenCV
我采用的方法如下:
1、下载相应Opencv2.4.10和VS2013
2、配置系统变量
3、建立/打开一个Win32应用程序的项目
和其他的地方区别在于,打开项目的属性页(找不到可以从视图—其他 里面找),为”Debug|Win32”和”Release|Win32”右键新建配置,分别添加一个配置文件,然后分别对配置文件进行一次OpenCV配置,就是配置重复两次(当然简单的方法可以直接复制之前配置好的属性)。

具体可以参考这篇博客的配制方法:
http://blog.csdn.net/u014574279/article/details/50909425

【我认为配置OpenCV,尤其对于初学者不太懂调试VS的(比如我..)用这种配置方法更保险一些。】

配置完成之后,我的项目成功运行了。(小白摸索过程就是如此艰辛,别人几分钟解决的我花了几天╮(╯▽╰)╭)…
CSDN新人小白,如果文中有说的不对的地方,欢迎拍砖,谢谢!

附上Opencv2.4.10的链接库目录,备日后用:
opencv_ml2410d.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_nonfree2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_videostab2410d.lib

opencv_objdetect2410.lib
opencv_ts2410.lib
opencv_video2410.lib
opencv_nonfree2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_stitching2410.lib
opencv_superres2410.lib
opencv_videostab2410.lib
opencv_calib3d2410.lib
opencv_contrib2410.lib
opencv_core2410.lib
opencv_features2d2410.lib
opencv_flann2410.lib
opencv_gpu2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
opencv_legacy2410.lib
opencv_ml2410.lib

上文提到的大神回答参考链接:
http://stackoverflow.com/questions/7668200/error-lnk2038-mismatch-detected-for-iterator-debug-level-value-0-doesnt/10432718NDUBUG

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章