今天发现,在做项目的过程中把问题记下来真是太重要了!前几天电脑坏了,所有的环境都要重新下载配置!光装vs2015就花了三四天!所以,吸取教训,把问题和解决方法记录下来!
问题1:VS2015 在win64 debug下出现error LINK2038:检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticDebug”不匹配值“MD_DynamicDebug”
原因:根据提示可以知道咱们的运行库是不匹配的,它需要的是运行库是静态库,而当前设置的是动态库
解决方法:在工程上右键-》属性-》c/c++-》代码生成-》运行库,将其修改成“多线程(/MTd)“
需要注意的是:
您要根据自己的实际情况选择库,要弄清您是在debug模式下还是release模式下,是需要静态库还是动态库?
在选择运行库时,四个选项的对应含义如下:
多线程调试Dll (/MDd) 对应的是MD_DynamicDebug
多线程Dll (/MD) 对应的是MD_DynamicRelease
多线程(/MT) 对应的是MD_StaticRelease
多线程(/MTd)对应的是MD_StaticDebug
问题2:VS2015 在win64 debug下error LINK2038:或者检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”
原因:产生这个问题的原因是当前工程是Debug版本,而引用的库文件时Release版本
解决方法:1、只需要把当前的Debug模式改成Release模式就可以啦
2、或者打开解决方案--》属性--》链接器--》输入--》附加依赖项中引用debug版本的lib文件名称(通常以d结尾的lib文件时debug版本)
需要注意的是:
如果检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”,则是上述方法倒过来!
最后,参考博客,非常感谢两位博主:
jhgameboy,error LNK2038 RuntimeLibrary 不匹配的解决:http://blog.csdn.net/jhgameboy/article/details/24498749
DaveBobo,error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”: http://blog.csdn.net/davebobo/article/details/51125346
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2015anzhuangwenti/2020/0727/5806.html