天天看點

fatal error LNK1123: 轉換到 COFF 期間失敗:檔案無效或損壞

問題出現背景:

原本電腦裡是裝着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中,選擇:項目\屬性\配置屬性\清單工具\輸入和輸出\嵌入清單:原來是“是”,改成“否”。

或者将:項目\屬性\配置屬性\連結器\清單檔案\生成清單:原來是“是”,改成“否”。

說明:這種方法每個工程均需要修改配置。

繼續閱讀