所用的vs2013环镜
昨天好好的编译成功的工程早上发生
错误 1 error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0.....错误
百度查了下资料通过设置编译选项/mtd 等等都没有解决,但是release版本设置编译通过说明代码没有问题;
通过尝试不同设置总算找到解决方法:
属性->c/c++->预处理器->预处理器定义
添加一个项
_HAS_ITERATOR_DEBUGGING
就可以正常编译了.
处理过程:
把_ITERATOR_DEBUG_LEVEL复制出来放在代码那边查找到_ITERATOR_DEBUG_LEVEL定义发现是条件编译,把需要的级别定义上去就好了如下图所示.
整个问题解决了.
2021.03.10同样碰到了2038的问题,但是解决方式不同,看看错误图片吧:
和第一种方法处理不一样这个是运行时库不匹配,我是新添加一个htmlcxx工程的lib产生的错误,解决方法是:
在htmlcxx工程中调整一下编译选项(由于我的工程是动态库,所以添加的lib运行库要MDD,有含DLL选项的):
重新编译后,复制htmlcxx.lib文件到工程,错误情况消失,这次我使用的环境是vs215。
可以参考今天的博文: htmlcxx工程的vs2015首次成功使用过程