如何修复从 VS2010 升级到 VS2013 的项目中的链接器错误,其中链接器正在寻找不存在的 MFC 库文件?

Posted

技术标签:

【中文标题】如何修复从 VS2010 升级到 VS2013 的项目中的链接器错误,其中链接器正在寻找不存在的 MFC 库文件?【英文标题】: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? 【发布时间】:2013-10-26 03:12:07 【问题描述】:

我正在将 VS2010 项目升级到 VS2013。我的一个应用程序正在寻找 mfc120.lib(或用于调试构建的 mfc120d.lib)。但是,VS2013 似乎附带 mfc120*u*.lib 和 mfc120*u*d.lib(可能是 unicode 版本,这是 VS2013 支持的唯一 MFC 版本)。

这是我得到的链接器错误:

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

我正在查看项目属性表,但没有看到任何用于指定要链接到哪个 MFC 库文件的设置。它甚至没有出现在属性表的“链接器-->命令行”页面中。

谁能帮我弄清楚如何让项目链接到正确的库文件?

非常非常感谢!

【问题讨论】:

【参考方案1】:

有时问题涉及无法使用 Unicode 支持重新编译的代码。在这种情况下,请下载多字节库:

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

【讨论】:

【参考方案2】:

在你的编译命令行中,可能有一个

/D "_MBCS"

应该是这样的

/D "_UNICODE"

这实际上就像放一个

#define _UNICODE

在您的源文件的顶部,但我认为它会影响哪些库被很好地拉入。

请参阅MSDN docs 了解更多信息。

【讨论】:

谢谢。对不起,我不能给你投票。我还没有足够的声望。 您或许可以接受答案。【参考方案3】:

在 VS2013 中,这些可作为插件使用:

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

【讨论】:

以上是关于如何修复从 VS2010 升级到 VS2013 的项目中的链接器错误,其中链接器正在寻找不存在的 MFC 库文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何修改vs2012的解决方案文件

vs2013怎么升级成vs2015

有朋友知道怎样打开VS2013的修复功能吗

从 VS2010 升级的 VS2013 winforms 项目中缺少一些图标和文本

FxCop VS2013 有人知道警告标识符是啥吗?

升级vs工程到vs2010(以上)工程找不到OutputDebugStr报错