天天看点

fatal error LNK1123: 转换到 COFF 期间失败:文件无效或损坏

问题出现背景:

原本电脑里是装着VS2015的,其使用的是.NET 4.5,当再安装VS2010之后,不能与当前的.NET平台兼容。卸载VS2015时,不会恢复.NET 4.0。

  • l 当VS2015安装后,VS2010的cvtres.exe就无法使用了。如果你的PATH环境变量中VS2010的工具路径第一个出现,而且链接器需要将.res文件转换为COFF 对象格式,就会导致LNK1123错误。
  • l 当VS生成PE文件头时,使用的cvtres.exe版本错误,不能与当前的.NET平台兼容。

那么当用VS 2010编译C++项目时出现这样的错误:fatal error LNK1123: 转换到 COFF 期间失败:文件无效或损坏

解决办法:

法一:

将 C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.17514_none_ba1c770af0b2031b 目录下的 cvtres.exe

复制到C:\Program Files\Microsoft Visual Studio 10.0\VC\bin 目录下,直接覆盖替换。

法二:

在VS中,选择:项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。

或者将:项目\属性\配置属性\链接器\清单文件\生成清单:原来是“是”,改成“否”。

说明:这种方法每个工程均需要修改配置。

继续阅读