Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compiling a MFC app from Visual Studio 2010 to 2012 RC results in LNK2038

My project is compiling and running OK in debug and release modes in VS 2010. Today I tried to compile it with VS 2012 and I got this error :

1>  Generating Code...
1>pcrecppd.lib(pcrecpp.obj) : error LNK2038: mismatch detected for '_MSC_VER': 
value '1600' doesn't match value '1700' in NamesEditorDlg.obj

I searched for "_MSC_VER" in the code but I could not find any match. Neither could I find "1600" or "1700".

So I am wondering how I can solve this problem.

like image 945
Wartin Avatar asked Aug 04 '12 11:08

Wartin


3 Answers

Looks like you're using a .lib from vc2010 in vc2012 (at a guess it looks like a PCRE library). You'll need to recompile all your .libs or run-time link with the DLLs (ie LoadLibrary, GetProcAddress etc.).

like image 95
snowdude Avatar answered Sep 21 '22 15:09

snowdude


In Project Properties, select General and then change the "Platform Toolset" setting to "Visual Studio 2010 (v100)." After I did that, my code compiled fine with the original libraries.

like image 27
Memitim Avatar answered Sep 19 '22 15:09

Memitim


Looking it up at http://msdn.microsoft.com/en-us/library/b0084kay.aspx It seems that variable holds the compiler's version number. I would think the best way to fix it would be to create a new project in 2012 and add the source files to the new project.

like image 40
Keitau Avatar answered Sep 20 '22 15:09

Keitau