我正在尝试将Visual C++ 2008项目升级到Visual C++ 2010项目。当升级完成,我强迫它,我得到这个错误: 致命错误LNK1104:无法打开文件“mfc90d.lib”VS2008升级到VS2010“无法打开文件'mfc90d.lib'”
我认为它应该参照“mfc100d.lib”,我尝试过很多办法来解决它但失败了。
有人遇到同样的问题吗?
我正在尝试将Visual C++ 2008项目升级到Visual C++ 2010项目。当升级完成,我强迫它,我得到这个错误: 致命错误LNK1104:无法打开文件“mfc90d.lib”VS2008升级到VS2010“无法打开文件'mfc90d.lib'”
我认为它应该参照“mfc100d.lib”,我尝试过很多办法来解决它但失败了。
有人遇到同样的问题吗?
可能的原因包括
一)你是不是重建所有的源文件 - 尝试删除所有输出OBJ和lib,以确保 b)你要链接,将其与VC9建立一个第三方静态库 - 你会需要VC10版本 c)您的标题路径指向VC9标题(请检查您的解决方案的路径选项) d)由于某些其他原因,您的项目包含对mfc90d的明确引用。
下一步诊断步骤:在链接器上设置/ verbose选项,并确切确定哪个obj在mfc90d.lib中拖动。
马丁
非常感谢。我发现原因是b)我连接了一个由VC9构建的第三方静态库。 – 2011-05-19 01:44:23
well @ user755226:我面临着几乎相同的问题。 我的问题是“LINK:致命错误LNK1104:无法打开文件”mfc100d.lib“”。能否请你指导我做什么你的问题..我认为问题几乎是相同的.. 抱歉说,我不能发布任何问题,因为我的问题会议已经结束。你能帮我谢谢 – RidaSana 2011-06-19 03:25:49
我做一个全局搜索的定义“_MFC_FILENAME_VER”我所有的源文件中发现的问题,以我的思念MFC100.dll。我发现下面的定义在我的头文件之一:
#define _MFC_FILENAME_VER 100
这是在该块使用:
#ifdef _DEBUG
#pragma comment(lib, "mfc" _MFC_FILENAME_VER "d.lib")
#pragma comment(lib, "mfcs" _MFC_FILENAME_VER "d.lib")
#else
#pragma comment(lib, "mfc" _MFC_FILENAME_VER ".lib")
#pragma comment(lib, "mfcs" _MFC_FILENAME_VER ".lib")
#endif
我把它改为:
#define _MFC_FILENAME_VER 110
所以它会在VS编译2012年版的MFC(mfc110d.lib)。
您是否拥有64位操作系统? – 2011-05-16 08:25:25