我已经安装了Visual Studio 2012发布预览版,它看起来很好,但现在当我尝试使用Visual Studio 2010编译c++项目时,我得到了以下错误消息:
链接:致命错误LNK1123:转换到COFF期间失败:文件无效或损坏
我不是100%确定,但这似乎与项目中有.rc(资源)文件有关。
我尝试从添加/删除程序和重新启动修复Visual Studio 2010,但这没有效果。
如果我使用Visual Studio 2012 RC来编译c++项目,而设置使用Visual Studio 2010工具集,我也会得到相同的错误。升级到Visual Studio 2011工具集可以解决这个问题(当然,我不想对产品代码这样做)。
更新:我已经卸载了Visual Studio 2012,重新启动,问题仍然存在!的帮助!
检查cvtrs.exe的版本:
dir "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe"
错误的版本:
日期:03/18/2010
时间:下午01:16
大小:31,048字节
名称:cvtres.exe
正确的版本:
日期:02/21/2011
时间:下午06:03
大小:31,056字节
名称:cvtres.exe
如果你有错误的版本,你应该复制正确的版本:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe
把这里的替换掉:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe
i.e.
copy "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe"
总结:
Step1
Project Properties
-> Configuration Properties
-> Linker (General)
-> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"
如果第1步不奏效,执行第2步
Project Properties
-> Configuration Properties
-> Manifest Tool (Input and Output)
-> Enable Incremental Linking -> "No"
如果第二步不起作用,执行第三步
复制文件之一:
C:\Program Files (x86)\Microsoft Visual Studio
11.0 \ VC \ bin \ cvtres.exe
C:\Program Files (x86)\Microsoft Visual Studio
12.0 \ VC \ bin \ cvtres.exe
C:\Program Files (x86)\Microsoft Visual Studio
13.0 \ VC \ bin \ cvtres.exe
然后替换到C:\Program Files (x86)\Microsoft Visual Studio
10.0 \ VC \ bin \ cvtres.exe
和我一起,做3步