fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

来源:互联网 发布:快手下载软件 编辑:程序博客网 时间:2024/06/05 10:51
我发现了有时候把yes->no好用
但是有时候改完又没有卵用

替换 cvtres.exe 可以使用
把c盘里面找到的那个文件是一个2010_11的文件替换掉vc路径下面的2010_3月的文件 编译通过

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

输入文件必须具有通用对象文件格式 (COFF) 格式。 如果输入文件不是 COFF,LINK 则链接器会自动尝试将 32 位 OMF 对象转换为 COFF,或运行 CVTRES.EXE 来转换资源文件。 此消息指示链接器不能转换该文件。 从另一个安装的 Visual Studio、Windows 开发工具包或 .NET Framework 中使用不兼容的 CVTRES.EXE 版本时,也会出现此情况。

说明 说明

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

修复此问题

  • 将所有服务包和更新应用到你的 Visual Studio 版本。 这对于 Visual Studio 2010 尤为重要。

  • 禁用了尝试使用增量链接生成。 在菜单栏上,依次选择“项目”、“属性”。 在“属性页”对话框中,依次展开“配置属性”、“链接器”。 将“启用增量链接”的值更改为“否”。

  • 验证在 PATH 环境变量中首次发现的 CVTRES.EXE 版本是否与由你的项目使用的生成工具的版本或平台工具集的版本相匹配。

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

  • 确保文件未损坏。 如有必要,请重新生成。

连接器LNK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题。

在电脑里面搜索一下cvtres.exe,发现存在多个文件,使用最新的cvtres.exe替换老的文件即可,替换之前记得备份一下,如果不对,可以替换回来。

例如:我的电脑里面安装了vs2010,最近更新了系统,打了一些补丁,结果就出现这种错误了。在电脑里面搜索发现

C:\Program Files\Microsoft Visual Studio 10.0\VC\bin

C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7600.16385_none_ba476986f05abc65

C:\Windows\Microsoft.NET\Framework\v4.0.30319

这三个路径里面都有cvtres.exe文件,于是我尝试使用第二个路径里面的文件替换第一个路径的文件,问题解决。

最终解决用最新的把vc路径下面那个替换掉就可以了 

参考资料如下:

http://stackoverflow.com/questions/10888391/link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-invalid-or-c/14144713#14144713


http://msdn.microsoft.com/zh-cn/library/7dz62kfh.aspx
0 0
原创粉丝点击