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

来源:互联网 发布:android k线图源码 编辑:程序博客网 时间:2024/05/15 06:38

      VS 2010下 打开实例 出现这样的错误: LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏。

      输入文件必须具有通用对象文件格式 (COFF) 格式。 如果输入文件不是 COFF,链接器将自动尝试转换为 COFF 的 32 位 OMF 对象或运行 CVTRES.EXE 来转换资源文件。 此消息指示链接器未能转换文件。

      如果运行 Visual Studio 的早期版本,自动转换可能不支持。


修复此问题

  • 确保文件类型有效。 例如,确保 OMF 对象不 32 位和 16 位。 有关详细信息,请参阅 用作链接器输入的 .Obj 文件 和 基于 PE 和 COFF 规范。

  • 确保文件未损坏。

解决方案一:

这两个fatal error是因为从低版本的WTL到高版本的WTL转变后产生的.
错误描述如下:
      1>正在编译资源...
      1>正在编译资源清单...
      1>正在链接...
      1>CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x0409
      1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
      1>生成日志保存在“file://c:\WTL80_7108_Beta1\Samples\BmpView\Debug\BuildLog.htm”

      1>BmpView - 2 个错误,1 个警告

========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过 ==========


解决方法如下:

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


解决方案二: 


1、搜索C盘下的cvtres.exe,结果得到类似这样的列表:

C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.17514_none_ba1c770af0b2031b
C:\Windows\Microsoft.NET\Framework\v4.0.30319

2、先备份 C:\Program Files\Microsoft Visual Studio 10.0\VC\bin 目录下的 cvtres.exe

3、复制 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 目录下,直接覆盖替换。

4、OK,打开测试一下,如果不行,记得还原备份的文件。



0 0
原创粉丝点击