LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
原帖:http://www.cnblogs.com/croot/p/3525322.html
最近我的VS2010不知道怎么回事,平时用的好好的,近期竟然出现了所谓的
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
头痛万分,查了各种资料一直无解,今天为了封装资源,嵌入清单,所以不惜血本仔细找了下,终于有解决方案了。
平时我们都是将 项目-->项目属性-->配置属性-->连接器-->清单文件-->嵌入清单 中的“是”改为“否”,不让他将清单嵌入,自然也用不着转换了,所以轻松编译。虽然麻烦点,每次新建项目都要设置,但是总比不能编译强吧。
但是这次,不可以了,因为我的程序要加写rc,必须带清单才能正常使用。所以这种治标不治本的方法失效了。
根据猜想,可能是因为系统最近多次更新,出现了两个版本的cvtres.exe。而系统变量里将这俩都引用了,编译的时候,不知道用哪个了,导致出错。
这就好办了,删掉一个呗。
一个在C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe,另一个在你安装VS的软件目录..\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe
然后右键属性-->详细信息 查看两者版本号,把老大的Kill掉,就完了。我的是在..\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe 的为老版本的,删掉它一切都正常了。
原帖:http://www.cnblogs.com/hwm520hlf1314/p/3461520.html
我的电脑了原来装了VS 2010了,今天下载VS 2012装了上去,然后建了个MFC工程,运行了一下。然后打开原来VS 2010项目,一运行,就报错了:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏。
首先,说明一下报错的原因(微软的解释),地址:http://support.microsoft.com/kb/320216/zh-cn
然后,在网上找到了不少解决方法,列举一下:
方法1:发现是嵌入清单的问题,于是对该工程以及所有依赖工程进行如下操作:右键->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否]
或者将项目\属性\配置属性\链接器\清单文件\生成清单:原来是“是”,改成“否”。
方法2:给VS2010打SP1补丁。这个补丁有500多M。下载地址是:http://www.microsoft.com/en-us/download/details.aspx?id=23691
但是,我按照方法1的方法去修改,还是不可以,于是,下载了2个小时补丁,安装后发现可以了。希望给遇到相同问题的朋友有一个借鉴。

浙公网安备 33010602011771号