Linker error LNK2038: mismatch detected in Release mode
Solution 1
Your app is being compiled in release mode, but you're linking against the debug version of PCRE, which had /MTd (or similar) set, thus causing the mismatch in iterator debugging level in the CRT.
Recompile PCRE in release mode to match your own application.
The detect_mismatch
pragma in VS 2010 is what causes this error to be emitted.
See http://blogs.msdn.com/b/vcblog/archive/2009/06/23/stl-performance.aspx (search for _ITERATOR_DEBUG_LEVEL)
Solution 2
I had the same error. In my case the solution is easy: I had one project A depending on another project B. B had a preprocessor definition _DEBUG in debug mode and A didn't.
Just add _DEBUG to project A(project->properties->c++->preprocessor->preprocessor definitions) and you're done.
Solution 3
This can also be caused by setting the preprocessor definition _HAS_ITERATOR_DEBUGGING=0
in project B and not in A where A produces a lib used by B.
Solution 4
My problem was that dependent project used "Use Multi-Byte Character Set"
under Generl-->Character set. while other project had "No Set" value
Related videos on Youtube
Wartin
Updated on July 09, 2022Comments
-
Wartin almost 2 years
I am trying to port a small app of mine from Win XP and VS 2005 to Win 7 and VS 2010.
The app compiles and runs smoothly in Debug mode, however in Release mode I get the following error:
pcrecpp.lib(pcrecpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in LoginDlg.obj
Where should I start checking?
-
BobbyShaftoe over 13 yearsHave you don a "clean" first?
-
Karim Agha over 12 yearsThis happens when some of your projects are being compiled in Debug mode and some in Release. Make sure that all of them are in the same mode.
-
Mark Storer about 5 yearsIncidentally, I did a clean build and it DID fix the problem, so if some passing reader hasn't yet: Give it a shot.
-
-
Derek almost 12 yearsThank you! Or in release mode you might have
NDEBUG
defined in one and not the other. -
Tomáš Zato over 5 yearsWhat if the problematic lib is a 3rd party software?