VS2017调试错误:error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:  值“0”不匹配值“2”

错误:

  • error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:  值“0”不匹配值“2”;
  • error LNK2038: 检测到“RuntimeLibrary”的不匹配项:  值“MT_StaticRelease”不匹配值“MTd_StaticDebug”

首先,一般情况下0不匹配2是debug下调用release的库,因此,我们在项目属性中设置:_ITERATOR_DEBUG_LEVEL=0;

VS2017调试错误:error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:  值“0”不匹配值“2”

其次,

  • MD__StaticRelease:多线程(/MT)
  • MD__StaticDebug:多线程调试(/MTd)
  • MD_DynamicRelease:多线程DLL(/MT)
  • MD__DynamicDebug:多线程调试DLL(/MTd)

按照提示,在对应模式下设置对应的选项:

例如在debug下:检测到“RuntimeLibrary”的不匹配项:  值“MT_StaticRelease”不匹配值“MTd_StaticDebug”

则需要在debug模式下面设置为MD__StaticRelease:多线程(/MT);