一、现象描述
笔者在用visual studio2010进行控制台程序进行程序编译时候,经常会遇到代码代码没有语法错误,但是编译不通过的现象。系统报错为
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
这个错误总是出现,特别是在每次新装系统后,很是烦人。
二、出现原因
通过查阅相关资料可知:
COFF文件是指通用对象文件格式(Common Object File Format),是一种比较流行的对象文件格式(区别于传统CC++中的*.obj文件)。统一文件格式的出现为混编语言编程带来了极大的便利。
出现该问题的原因通常是由于高版本与低版本之间的链接文件的格式发生变化(例如VS2015与VS2010)或者VS文件安装不完整等导致的。
三、处理方法
- 修改文件配置
点击项目属性->配置属性->清单工具->输入输出->嵌入清单,将后面的是改为否;
点击项目属性->配置属性->链接器->清单文件->生成清单,将后面的是改为否;
- 替换cvtres.exe文件
这是由于系统文件发生损坏或者冲突导致的,这时候需要将系统自带的C:Windowswinsxsx86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.17514_none_ba1c770af0b2031b下的文件替换到Visual Studio中的D:Visual Studio2010VCin目录下,即可。
3.其他方法
此外,还可以通过给VS2010打SP1补丁的方式进行解决。这里不再赘述。