How do I fix the linker error in project upgraded

2019-06-25 00:07发布

问题:

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!

回答1:

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.



回答2:

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



回答3:

In VS2013, these are available as addon:

http://msdn.microsoft.com/en-us/library/dn251007.aspx