問題出現背景:
原本電腦裡是裝着VS2015的,其使用的是.NET 4.5,當再安裝VS2010之後,不能與目前的.NET平台相容。解除安裝VS2015時,不會恢複.NET 4.0。
- l 當VS2015安裝後,VS2010的cvtres.exe就無法使用了。如果你的PATH環境變量中VS2010的工具路徑第一個出現,而且連結器需要将.res檔案轉換為COFF 對象格式,就會導緻LNK1123錯誤。
- l 當VS生成PE檔案頭時,使用的cvtres.exe版本錯誤,不能與目前的.NET平台相容。
那麼當用VS 2010編譯C++項目時出現這樣的錯誤:fatal error LNK1123: 轉換到 COFF 期間失敗:檔案無效或損壞
解決辦法:
法一:
将 C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.17514_none_ba1c770af0b2031b 目錄下的 cvtres.exe
複制到C:\Program Files\Microsoft Visual Studio 10.0\VC\bin 目錄下,直接覆寫替換。
法二:
在VS中,選擇:項目\屬性\配置屬性\清單工具\輸入和輸出\嵌入清單:原來是“是”,改成“否”。
或者将:項目\屬性\配置屬性\連結器\清單檔案\生成清單:原來是“是”,改成“否”。
說明:這種方法每個工程均需要修改配置。