c++错误

Posted 海龙的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++错误相关的知识,希望对你有一定的参考价值。

IntelliSense: #error 指令: Please use the /MD switch for _AFXDLL builds

 

修改设置:工程(Project)-> 属性(Properties)-> 配置属性(Configuration Properties)-> c/c++-> 代码生成(Code Generation)->运行库(Use run-time library)->多线程调试DLL(/MD)

error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”
error:
vtkCommon.lib(vtkSmartPointerBase.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:值“0”不匹配值“2”(cloudviewer.obj 中)
1>vtkCommon.lib(vtkGarbageCollector.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(cloudviewer.obj 中)
1>vtkCommon.lib(vtkDebugLeaksManager.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(cloudviewer.obj 中)
 
错误原因是:Debug使用了Release的库文件。
即使你连接库里面两个都添加着呢,但是release库文件放在了debug前面,也是出错的。默认按顺序使用库文件。
类似错误:如release下使用了Debug的库文件,报错类似:
error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”.
 
这个问题是对于,静态库才会出现release和debug的区别
 

 ①值“0”不匹配值“2”,Debug使用了Release下的库文件。

      ②值“2”不匹配值“0”,Release使用了Debug下的库文件。

      对于上述两种情况,只需要在预处理定义中设定其值使其符合要调用的程序即可。VS2010中,Debug模式下默认值为2,Release模式下默认值为0。

      对于情况一,只需在项目->属性->配置属性->C/C++->预处理器->预处理定义中添加“_ITERATOR_DEBUG_LEVEL=0"即可。

      对于情况二,只需在项目->属性->配置属性->C/C++->预处理器->预处理定义中添加“_ITERATOR_DEBUG_LEVEL=2"即可。

 

http://blog.sina.com.cn/s/blog_7cdaf8b60102v152.html

http://blog.csdn.net/ghevinn/article/details/48026979

http://zhidao.baidu.com/link?url=K_v0VCIcZbUpSTr0DSv_4nvojmQ3AI8RA9G_tlyK9s38yFndN7sfdTMzQnTIWkQdfIItK11i9yPxSq7XeQpwoK

 

以上是关于c++错误的主要内容,如果未能解决你的问题,请参考以下文章

以下代码片段 C++ 的说明

C++ 代码片段执行

此 Canon SDK C++ 代码片段的等效 C# 代码是啥?

C++ 代码片段(积累)

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

什么是在 C++ 中获取总内核数量的跨平台代码片段? [复制]