Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I fix the linker error in project upgraded from VS2010 to VS2013 where the linker is looking for an MFC library file that is not present?

I am upgrading a VS2010 project to VS2013. One of my applications is looking for mfc120.lib (or mfc120d.lib for debug builds). However, it appears that VS2013 ships with mfc120*u*.lib and mfc120*u*d.lib (presumably unicode versions which is the only version of MFC supported by VS2013).

Here are the linker errors I'm getting:

LINK : fatal error LNK1104: cannot open file 'mfc120.lib'
LINK : fatal error LNK1104: cannot open file 'mfc120d.lib'

I'm looking through the project property sheets and don't see any setting for specifying which MFC library file to link against. It's not even showing up in the "Linker-->Command Line" page of the property sheets.

Can someone help me figure out how to get the project to link to the correct library files?

Thank you very, very much!

like image 314
CppWoman Avatar asked Nov 30 '22 20:11

CppWoman


2 Answers

Sometimes the issue involves code that can't be re-compiled with Unicode support. In that case, download the multi-byte libraries:

http://www.microsoft.com/en-us/download/details.aspx?id=40770

like image 161
edwinc Avatar answered Dec 09 '22 10:12

edwinc


In your compile commandline, there is probably a

/D "_MBCS"

and that should be

/D "_UNICODE"

That's effectively like putting a

#define _UNICODE

at the top of your source files, but I think it affects what libraries are pulled in well.

See the MSDN docs for more info.

like image 23
Drew Hoskins Avatar answered Dec 09 '22 09:12

Drew Hoskins