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

VS:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏,第1张

参考链接: https://www.cnblogs.com/newpanderking/articles/3372969.html

原因是安装更高版本VS,卸载后,再次安装VS2010时,.NET也到更高版本了,不会恢复.NET 4.0

VS2010的cvtres.exe就无法使用了。

解决方法如下:

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

说明:这种方法每个工程均需要修改配置。

当前系统中存在两个cvtres.exe文件,版本不同。让VS2010使用.NET 4.5的cvtres.exe程序。

具体步骤:

重命名或删除:(vs2010安装的位置)……\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe

这样……Microsoft.NET\Framework\v4.0.30319 (.NET 4.5)中的cvtres.exe文件就可以被VS2010使用。

亲测两个方法均有效。

vs2010 LINK : fatal error LNK1123: 转换到 COFF 期间失败:

解决方法如下:

删除C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin下面的那个cvtres.exe 。他重复了

原因:

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

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

百度:

COFF –通用对象文件格式(Common Object File Format),是一种很流行的对象文件格式(注意:这里不说它是“目标”文件,是为了和编译器产生的目标文件(*.o/*.obj)相区别,因为这种格式不只用于目标文件,库文件、可执行文件也经常是这种格式)。大家可能会经常使用VC吧?它所产生的目标文件(*.obj)就是这种格式。其它的编译器,如GCC(GNU Compiler Collection)、ICL(Intel C/C++ Compiler)、VectorC,也使用这种格式的目标文件。不仅仅是C/C++,很多其它语言也使用这种格式的对象文件。

解决方案:

第一步:将 项目——项目属性——配置属性——连接器——清单文件——嵌入清单 “是”改为“否”。若还不能解决问题进入第二步。

第二步:查看计算机是否为64bit *** 作系统,如是,继续如下 *** 作。

查找是否有两个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变量。

治本的办法是第二步,删除旧版本的cvtres.exe后,就不需要每次都设置配置了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11826176.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存