错误 LNK1104:无法打开文件 'mfc90.lib'

Posted

技术标签:

【中文标题】错误 LNK1104:无法打开文件 \'mfc90.lib\'【英文标题】:error LNK1104: cannot open file 'mfc90.lib'错误 LNK1104:无法打开文件 'mfc90.lib' 【发布时间】:2013-03-11 01:54:42 【问题描述】:

我正在使用 Visual Studio 2012 Professional,我的项目引用了使用 VS2008(v90) 构建的静态库。当我使用 VS2012(v110) 构建时,

error LNK1104: cannot open file 'mfc90.lib'

发生错误。 更改平台工具集是解决此问题的唯一方法吗?我认为这不是我的解决方案,因为我应该以 .NET Framework 4.5 为目标。 (我知道我不能将 .NET Framework 4.0 与 v90 一起使用。如果有误,请纠正我) 请告诉我如何在 VS2012 项目中使用 VS2008 构建的库。 提前致谢! 附言。如果改变平台工具集是解决问题的唯一方法,那么如何引用使用各种 Visual Studio 编译器构建的多个库?(例如,使用 vs2008、vs2010 和 vs2012 构建的)

编辑: 我正在为 3rd 方库(本机 C++)编写一个包装程序以在 .NET Framework 上运行。问题是我应该用VS2012构建,但是用VS2008构建的库需要mfc90.lib(VS2012中不包含)

【问题讨论】:

【参考方案1】:

通过链接到 mfc110.lib 而不是 mfc90.lib,我能够让我的项目在 vs2012(从 vs2008 转换)中构建

【讨论】:

很抱歉,我检查您的答案有点晚了。是否可以在不重新编译第 3 方库的情况下将链接库 mfc90.lib 更改为 mfc110.lib(我没有第 3 方库源)?如果是,请告诉我这样做的方法。【参考方案2】:

我认为 MFC 库与您所针对的 .NET Framework 版本没有任何关系。 VS2012 会有类似 mfc110.lib 的东西,这可能是你应该使用的。如果你想使用 mfc90.lib,它应该在以下文件夹中:

C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\lib

当然,您需要安装 VS2008 才能使该文件夹存在。

但是 VS2012 不会在该文件夹中查找库依赖项,因此您需要在 Configuration Properties | 中指定完整路径链接器 |输入 |其他依赖项

【讨论】:

哦,我错过了。是的,它不适用于 .NET。我只是在编写一个在 CLR 上运行的包装 C++/CLI 程序。问题是第 3 方库需要 mfc90.lib。我手动添加了 mfc90.lib 和 mfcs90.lib,但它引起了另一个问题。

以上是关于错误 LNK1104:无法打开文件 'mfc90.lib'的主要内容,如果未能解决你的问题,请参考以下文章

:-1: 错误: LNK1104: 无法打开文件'MyProject.obj'

错误 LNK1104:无法打开文件 'aocl_utils.lib'

链接:致命错误 LNK1104:无法打开文件 'ucrt.lib'

LINK : fatal error LNK1104: 无法打开文件“libboost_serialization-vc90-mt-gd-1_62.lib”

为啥我收到错误 LNK1104:无法打开文件 'glew32.lib'

链接:致命错误 LNK1104:无法打开文件“Iphlpapi.lib”