recently I started to migrate from x86 on Visual Studio 2008 to x64 on VS2012. All required libraries compiled fine (I used only static Debug and Release, no DLL!)
However, first standalone executable posed a problem. Debug version compiles and links fine, but Release sometime does and sometimes doesn't, complaining:
error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MT_StaticRelease'
Here is the summary of my tests:
1. I've checked that ALL libraries are compiled as "Multi-threaded (/MT)"
2. At least one library links fine (I've tried a number of instantiations of different classes and calls to their methods)
3. Program links fine when I instantiate SOME classes from another library
4. Attempts to instantiate other classes from the same library causes mismatch
5. If I rename the culprit library, linker cannot find it, so it is indeed the one
Having limited experience with VS2012 I've searched for similar cases and didn't find any. Could anyone suggest a solution or a test which would clarify the problem?