错误原因:
qtmain.lib(qtmain_win.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2(xxxx.obj 中)
值“0”不匹配值“2
表示当前链接器引入的lib链接库或者静态库是Release 0版,但是解决方案运行的环境是Debug 2版。
排查应该从前面的文件入手,比如这里是qtmain.lib(qtmain_win.obj)
,所以应当在工程配置的链接中检查输入→附加的依赖项
。
将qtmain.lib
替换为qtmaind.lib
,排查顺序是先看前面的文件,再看后面的文件。
有文章说是由于后面文件xxxx.obj引起的,其实主要看的是第一个地方报出的错误
。
附:
Debug版附带更多的调试信息,编译产生的文件容量也更大,一般lib文件的名字后面会加上d,比如thrift.lib,调试版是thriftd.lib。
Release版的lib库文件常不附带d,确保在vs链接器的输入中附加依赖项保证符合当前项目的运行环境。