qt -win COFF: file invalid or corrupt

使用VisualStudio 编译链接中可能出现如下错误:

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

网上有如下解决方法:

1. disable incremental linking

 

Project Properties  -> Configuration Properties  -> Linker (General)  -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"

2. turning off "Embed Manifest"

 

 

但是我使用这两种方法均不奏效.

Issue root cause: 系统更新或软件升级中,造成有多于一个版本的 Utility: cvtres.exe

D:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/cvtres.exe

C:/Windows/Microsoft.NET/Framework/v4.0.30319/cvtres.exe

 

而因不当造成VS目录下的cvtres.exe不在work.如果该Utinity在路径的前面,linker觉得需要转换一个.res文件为COFF对象格式,link将失败,显示error: LNK1123

 

方法: 对VS下旧的Utility cvtres.exe删除或者重命名为cvtres.exe_old.或者重新安排 PATH 变量.

 

参考文献:

http://stackoverflow.com/questions/10888391/error-link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-inval

-------------------

 

关于 error: LNK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案【Qt】【 VS2010】

 

近日因为换装硬盘重装了系统,于是不得不重新安装VS2010 Qt 这些个开发工具。安装过程都没什么问题,安装完了顺手点了个例子测试下好没好用,于是就出现了标题中的错误提示。之前处理过一次,时间久了就忘了,于是又一顿搜索解决了。这次长个心眼,记下,免得以后又忘了(写博客随笔什么的不好坚持啊,不得不鄙视下自己 )。


 

  正题开始。提示说明在转换到COFF文件因为错误失败了(VS2010装好了,一般是不会有[file invalid] 错的)。

  而完成转换工作的是cvtres.exe这个程序。出现上面错误的根本原因是系统中存在有多个版本的 cvtres.exe。

  系统目录下版本:C:/Windows/Microsoft.NET/Framework/v4.0.30319/cvtres.exe

   VS目录下版本: C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/cvtres.exe

  如果是64位系统,那么还有个在 C:/Windows/Microsoft.NET/Framework64/v4.0.30319/cvtres.exe

  不过Framework 和Framework64下俩个版本是一致的,而且由于系统更新,一般比VS目录下的版本新。


 

 


 

  到此解决方法也就明显简单了,只需要将旧版的重命名或者删除,不过我一般习惯重命名,比如在后面加上 -old。

还有点要说的,就是在找系统目录下的cvtres.exe程序的时候,有个名字叫  cvtres.exe的XML文件(博主没有显示文件扩展名 )。所有大家找的时候记得别找错了啊。

好了,这篇随笔就记到这儿了。 养成写博客习惯不容易啊 T T(排版有点不好使啊),继续努力!

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值