VS2017 qtmaind.lib(qtmain_win.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项

1>------ 已启动全部重新生成: 项目: ShowDemo, 配置: Release x64 ------
1>Reading Qt configuration (D:\Qt\Qt5.10.1\5.10.1\msvc2015_64\bin\qmake.exe)
1>moc orbbecPaintView.h
1>moc showdemo.h
1>main.cpp
1>orbbecPaintView.cpp
1>showdemo.cpp
1>moc_orbbecPaintView.cpp
1>moc_showdemo.cpp
1>qtmaind.lib(qtmain_win.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”(main.obj 中)
1>qtmaind.lib(qtmain_win.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MD_DynamicRelease”(main.obj 中)
1>MSVCRT.lib(initializers.obj) : warning LNK4098: 默认库“msvcrtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>E:\VS2017WorkSpace\ShowDemo\x64\Release\\ShowDemo.exe : fatal error LNK1319: 检测到 2 个不匹配项
1>已完成生成项目“ShowDemo.vcxproj”的操作 - 失败。
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========
 

错误分析
这是一个VS2010链接时产生的错误,有可能有两种说法:
 值“0”不匹配值“2”
 值“2”不匹配值“0”
关于这个报错的解释是:
Debug使用了Release的库文件。若你连接库里两种库文件都添加着,但是却把release库文件放在了debug前面,也是会出错的。因为程序默认按顺序使用库文件。若报错为error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”。则可能是在release下使用了Debug的库文件。一般库文件中文件名后面加d的是debug库文件,没有加d的是release库文件。
————————————————
版权声明:本文为CSDN博主「ColdWindHA」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ColdWindHA/article/details/82016372

在附加依赖项中将qtmaind.lib; 修改为qtmain.lib;即可。

 

你可能感兴趣的:(Visual,Studio环境)