visual studio中的_ITERATOR_DEBUG_LEVEL错误,接受的解决方案无效

时间:2014-04-30 21:22:06

标签: c++ visual-studio-2010 debugging compilation

我有一个大型的C ++项目(20个静态库,5个DLL)和某些我无法查明的内存问题。打印到CMD窗口太不可靠了,我进入了圈子,我觉得在调试模式下运行项目是我唯一的希望来确定这个bug的位置。

但是,由于VS中的_ITERATOR_DEBUG_LEVEL错误,我似乎无法在调试模式下构建项目。

The accepted solution seems to be to recompile everything at the same debug level。所以我尝试了这个并设法在_ITERATOR_DEBUG_LEVEL = 0选项中编译我的所有DLL(它是一大堆蠕虫)。

但我仍然遇到_ITERATOR_DEBUG_LEVEL错误,我仍然无法在调试模式下编译我的项目。 编辑确切的错误是:

LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2'

它列出了这些文件,其中myProject是我正在尝试编译的项目。 projectVRPNabc.o来自另一个使用_ITERATOR_DEBUG_LEVEL = 0重新编译的项目

projectVRPNabc.o
myproject123.o
myproject456.o
myproject789.o

请咨询,帮助吗?

2 个答案:

答案 0 :(得分:2)

_ITERATOR_DEBUG_LEVEL error in visual studio

请参阅此处的评论。

根据其中一条评论,可能是因为您的目录中有一个旧的lib。

答案 1 :(得分:0)

确实存在一个问题,即DLL没有使用必要的_ITERATOR_DEBUG_LEVEL进行编译,以便项目能够编译。

肉眼看来,DLL似乎是在调试模式下的适当设置下编译的。 这是谎言。

相反,在Configuration Manager中,项目设置为编译为发布模式。 按下按钮进行编译,当它说" Debug"实际上会在发布版本中编译。这个问题被认为是糟糕的用户界面设计。这也意味着工具栏不可靠。

TL; DR :Visual Studio的工具栏是个谎言。

Visual Studio 2010 Config Manager vs Config Toolbar