【问题标题】:LINK : fatal error LNK1181: cannot open input file链接:致命错误 LNK1181:无法打开输入文件
【发布时间】:2014-06-19 01:12:23
【问题描述】:

我试图在工作中用 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" /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 线程,并且没有看到与我的问题相关的任何内容,并且链接器设置中的任何目录名称中都没有空格 [这是作为源代码提到的问题无处不在]。

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

【问题讨论】:

  • 这是一个链接器错误。您使用 compiler 命令记录了您的问题。这无助于我们为您提供帮助。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    现在,当我尝试重新编译项目时,它会给出错误提示: LINK : fatal error LNK1181: cannot open input file 'C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\lib\VC6Lib .obj' --- 检查你是否真的有这个文件。当您在项目中引用一个 lib 并且 VS 尝试查找它时,您会得到这个,它不存在。

    【讨论】:

      猜你喜欢
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 2020-06-02
      • 2015-08-31
      • 2017-02-17
      • 1970-01-01
      相关资源
      最近更新 更多