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

来源:互联网 发布:linux系统可以玩lol吗 编辑:程序博客网 时间:2024/06/05 18:39

网速搜到的终极解决方案:
VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。
在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:
第一步:与上相同。
第二步:将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单 “是”改为“否”。
第三步:一般计算机经过上两步设置就能解决问题了,但是如果还有问题,那就按一下方法解决:
计算机是否为64bit操作系统,如是,继续2。
查找是否有两个cvtres.exe。一个是C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe, 另一个是C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe。右键属性|详细信息 查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。

如果不行的话试下如下方案:方案1、删除旧版本的cvtres.exe,删前备份下(啰嗦了),然后重新编译。方案2、安装VS 2010 SP1补丁包。
方案3、在电脑里面搜索发现
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文件,尝试使用第二个路径里面的文件替换第一个路径的文件。
(这个问题是windows自动更新造成编译器cvtres.exe的版本过低,如果windows再次更新,则还可能出现这样的问题,届时再重复一下上述步骤即可。)

链接器工具错误 LNK1123


链接器工具错误 LNK1123Visual Studio 2013
其他版本
转换到 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 规范。

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

请参见

参考

用作链接器输入的 .Obj 文件
EDITBIN 参考
DUMPBIN 参考

社区附加资源

添加

vs2010中下的解决方案

安装sp1的补丁。


http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=23691


0 0