链接:致命错误LNK1181:无法打开输入文件

时间:2014-05-02 11:06:47

标签: visual-c++ visual-studio-2008 porting

我试图用VS2008在工作中编译VC6项目。我能够成功删除遗留代码中的所有编译错误和警告。

但是我在连接阶段遇到了一个奇怪的问题。问题如下:

我遇到的第一个问题是没有找到与mfc42d.obj相关的错误。 为了避免这种情况,我将VC6库放在我的VS9安装中。 (在名为VC6Lib的文件夹中)。

现在,当我尝试重新编译项目时,它会出错: LINK:致命错误LNK1181:无法打开输入文件' C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ atlmfc \ lib \ VC6Lib.obj'

附上构建日志的标题,供您参考:

  

cl / Ox / I" C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ include" /我" D:\ Simulator \ simserver \ h" / D" WIN32" / D" NDEBUG" / D" _WINDOWS" / D" WINVER = 0x0601" / D" _WIN32_WINNT = 0x0601" / D" _CRT_SECURE_NO_WARNINGS" / D" USE_MSXML_NAMESPACE " / D" _AFXDLL" / D" _ATL_STATIC_REGISTRY" / D" _MBCS" / FD / EHa / MD / Zc:wchar_t- / Fo" Release \" /Fd"Release\vc90.pdb" / W4 / c / Zi / clr / TP。\ simserver \ src \ structdb.cpp       1 GT; \ simclient \ SRC \ stdafx.cpp

我已经在这个错误上浏览了所有其他StackOverflow和MSDN线程,并且没有看到任何与我的问题有关的内容,并且链接器设置中的任何目录名都没有空格[作为源提到对于这个问题无处不在]。

我想知道这可能是什么类型的错误,可能的解决方案是什么。

2 个答案:

答案 0 :(得分:1)

mfc42d.lib是旧MFC的导入库。您必须从要链接的库管理器列表中删除该库。使用项目设置添加正确的MFC库"用作静态/共享库。

答案 1 :(得分:1)

现在当我尝试重新编译项目时,它会出错:LINK:致命错误LNK1181:无法打开输入文件'C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ atlmfc \ lib \ VC6Lib .OBJ” --- 检查你是否真的有这个文件。当你在项目中引用一个lib并且当VS试图寻找它时,你得到这个,它就不存在了。