算是转载吧,是我查了一些资料,然后,把自己的问题整理记录的。答案是转载的。
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
显示错误代码如上。
编译环境为VS2010,操作系统是Windows 7 旗舰版,64位操作系统。
机器是公司的Dell 本本,昨天拿来几乎是新装的系统。
VS2010和几个系统库是我今天上午装的。
在网上查了一下解决方法,大概3种,
引用http://bbs.csdn.net/topics/390121452帖子25楼的整理的很好。
终极解决方案: VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误, 解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。 在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为: 第一步:与上相同。 第二步:将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单 “是”改为“否”。 第三步:一般计算机经过上两步设置就能解决问题了,但是如果还有问题,那就按一下方法解决: 计算机是否为64bit操作系统,如是,继续2。 查找是否有两个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后,就不需要每次都设置配置了。
对于这里给出的第三步方法,38楼和后面有人提出,有很多cvtres.exe文件不知道怎么办好。
这个待议……
刚刚有看了http://www.tuicool.com/articles/6jAFFf文章,写的也很详细。它还添加了2个常用方法。
总结一下,就是安装VS 2010及其SP1,设置属性的嵌入清单为否, 平台工具集为2010,重新生成即可。 其实这个也就是临时急着解决问题用的,估计过几天VS2012 update 1的网络安装稳定了, 就可以直接使用2012的工具集编译出支持XP和2003的程序了。 解决方案4: 微软的东西就是这样,一旦出了问题,你只能选择重装,甚至是重装系统。 我也采用这种笨方案。不过凭感觉可能与我以前在D盘安装过vc有关, 有可能覆盖安装导致某些文件被破坏。于是我先卸载了VC, 然后把文件夹D:/program files/Viusaul studios删除掉, 以前就是安装的这个目录。然后重启电脑,重新安装了一下。 又重新打开小项目,编译,通过了。
最后成为资料总结了。
我的问题是安装了VS2010的SP1安装包,再重新安装就解决了。
遗留带解决知识学习
1、嵌入清单 到底是什么,什么用途?为何这里可以解决?
2、cvtres.exe 是什么,什么用途?为何会这样解决?
刚刚找了,不好相关不多,有时间再说。
资料文章:
http://bbs.csdn.net/topics/390121452
http://hi.baidu.com/sangwf/item/415c0e76b632132ad6a89c2a
http://www.tuicool.com/articles/6jAFFf