1. 主页 > vs安装问题 > VS2010安装问题 >

Visual Studio使用问题(LNK1123: 转换到 COFF 期间失败

问题描述:电脑上本来的开发环境是VS2010,在学习某一程序时需要跟高版本的VS,于是安装了VS2013,这是问题来了,原版在VS2010下开发的程序在进行编译时出现这样的问题:LINK : fatal error LNK1123: 转换到 COFF 期间失败文件无效或损坏。

随之而来的解决方法有三种:

方法一)     :将VS环境下当前选中,依次选择:项目->项目属性->配置属性->连接器->清单文件->生成清单“是”改为“否”。

方法二)     将VS环境下当前选中,依次选择:项目->项目属性->配置属性->清单工具->输入与输出->嵌入清单“是”改为“否”。若还不能解决问题进入第三种方法;

方法三)     查看计算机是否为64bit操作系统,如果是,继续如下操作:

查找是否有两个cvtres.exe

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cvtres.exe(这个路径为最高VS版本的路径)

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

右键属性—详细信息,查看两者版本号,删除/重命名较旧的版本。这是治本的办法,删除旧版本的cvtres.exe后,就不需要每次都设置VS配置了。

解决了上述问题又有了新的问题,VS编译程序时生成的清单到底是什么,有什么作用?

关于清单的相关概念在MSDN上有详细描述,链接如下:

http://msdn.microsoft.com/zh-cn/library/ms235542(v=vs.120).aspx

其实清单是VS 2005VS以后版本在生成可执行文件时使用了一种技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是XML文档,你可以用文本编辑器打开看看),并在链接完成后将该清单文件嵌入到exe文件中(默认情况下)。而连接器LINK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题,使用最新的cvtres.exe替换老的文件即可。替换之前记得备份一下,如果不对,可以替换回来。

完毕,对VS还是很陌生,以后要多了解才行,不然出了问题后一头雾水,就是找到解决方案也是知其然不知其所以然,引以为戒。

本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2010anzhuangwenti/2020/0724/2582.html

联系我们

在线咨询:点击这里给我发消息

微信号:PREEE8

工作日:9:30-18:30,节假日休息