_iterator_debug_level value '0' doesn'

2019-01-18 01:10发布

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 solution. I get the error above on a bunch of .obj's on compile, not sure what to do about it.

5条回答
成全新的幸福
2楼-- · 2019-01-18 01:51

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).

查看更多
做自己的国王
3楼-- · 2019-01-18 01:56

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.

查看更多
我只想做你的唯一
4楼-- · 2019-01-18 02:04

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.

查看更多
Bombasti
5楼-- · 2019-01-18 02:09

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.

查看更多
Luminary・发光体
6楼-- · 2019-01-18 02:10

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.

查看更多
登录 后发表回答