问题出现背景:
原本电脑里是装着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中,选择:项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。
或者将:项目\属性\配置属性\链接器\清单文件\生成清单:原来是“是”,改成“否”。
说明:这种方法每个工程均需要修改配置。
成功~