_iterator_debug_level value '0' doesn't match value '2'

后端 未结 5 1739
暗喜
暗喜 2020-12-05 22:46

I\'ve just moved over a Visual Studio (C++) solution over to another computer, setup all the directories and settings as far as I can see, and did a clean/rebuild on the sol

相关标签:
5条回答
  • 2020-12-05 23:07

    Mixing binaries (object files) is one reason; another (which I encountered) is the false definition of the _DEBUG macro in the release build. _DEBUG is not a standard macro, but used by Microsoft.

    After editing the .vcxproj-file in Emacs I mistyped _DEBUG instead of NDEBUG for the release, and encountered precisely the same build error.

    0 讨论(0)
  • 2020-12-05 23:18

    It seems that you are mixing object files built with different settings. Try to do a full clean rebuild and check all project file settings to make sure that the _ITERATOR_DEBUG_LEVEL macro is the same (e.g., you are not mixing debug and release built objects).

    0 讨论(0)
  • 2020-12-05 23:19

    In some cases, mixing the options in

    Properties>Configuration Properties>C/C++>Code Generation>Runtime Library

    Between included Library(ies) and currently working project can cause this problem.

    Depending on usage set it as /MD or /MT or /MDd or /MTd uniformly across all projects.

    0 讨论(0)
  • 2020-12-05 23:27

    I have been trying to solve this issue for five days. The Point Cloud Library (PCL) code builds successfully in debug mode but fails in release mode.

    I have reconfigured my library several times but it didn't help. I found the problem was that the release version was inheriting _DEBUG so I unchecked it under project properties >> Preprocessor >> Processor Definitions and it was solved.

    0 讨论(0)
  • 2020-12-05 23:27

    I found out (oddly) that _CRT_NON_CONFORMING_SWPRINTFS causes it. When I remove it, I don't get "_iterator_debug_level value '0' doesn't match value '2'" but instead the following warning:

    Error 6 error C4996: '_swprintf': swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.

    0 讨论(0)
提交回复
热议问题