問題
打開VC2010創建一個極簡單的Win32Console程序,然後按F5運行程序時出現如下錯誤提示:
error LNK1123: failure during conversion to COFF: file invalid or corrupt
錯因分析
提示說明在轉換到COFF文件因爲錯誤失敗了(VS2010裝好了,一般是不會有[file invalid] 錯的)。
而完成轉換工作的是cvtres.exe這個程序。出現上面錯誤的根本原因是系統中存在有多個版本的 cvtres.exe。
系統目錄下版本:C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe
VS目錄下版本: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cvtres.exe
如果是64位系統,那麼還會有一個同名文件位於:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\cvtres.exe
不過Framework 和Framework64下倆個版本是一致的,而且由於系統更新,一般比VS目錄下的版本新。
到此解決方法也就明顯簡單了,只需要將舊版的重命名或者刪除。
至於觀察文件的版本,請參考下圖: