我在工作中尝试用VS2008编译一个VC6项目。我能够成功删除旧代码中的所有编译错误和警告。
但是我在链接阶段遇到了一个特殊的问题。问题如下:
我遇到的第一个问题是存在与找不到 mfc42d.obj 相关的错误。 为了避免这个问题,我将 VC6 库放置在 VS9 安装中。 (在名为 VC6Lib 的文件夹中)。
现在,当我尝试重新编译该项目时,它给出了一个错误: 链接: fatal error 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" /I "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> .\simclient\src\stdafx.cpp
我已经浏览了有关此错误的所有其他 StackOverflow 和 MSDN 线程,并且没有看到与我这样的问题相关的任何内容,并且链接器设置中的任何目录名称中都没有空格 [ 被提到为此错误的来源到处都有问题]。
我想知道这可能是什么类型的错误以及可能的解决方案是什么。
最佳答案
mfc42d.lib是旧MFC的导入库。您必须从要链接的库管理器列表中删除该库。您可以使用项目设置“用作静态/共享库”添加正确的 MFC 库。
关于visual-c++ - 链接 : fatal error LNK1181: cannot open input file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23426654/