1. 程式人生 > >【解決方案】LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 檔案無效或損壞

【解決方案】LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 檔案無效或損壞

昨晚學習MFC的時候在一臺裝有VS2010的電腦上寫了一個加法計算器的簡單程式,但是今天拷到另外一臺VS2012的電腦上編譯就一直報錯:

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

後來在網上查了一下,原來VS2010建立的專案在更新的版本中開啟時會出“error LNK1123” 錯誤,解決方案為將 專案|專案屬性|配置屬性|清單工具|輸入和輸出|嵌入清單 “是”改為“否”即可,但是沒新建一個專案都要這樣設定一次。

但是我嘗試了上述方法後仍然不可行,遂又查之。經檢驗後解決方案如下:

在電腦上“查詢”cvtres.exe,看結果中是否有多個cvtres.exe檔案,重點關注如下兩個:

一個是VS安裝目錄下..\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe

另一個是C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.22733_none_a350e9690a5779a6\cvtres.exe

(當然每個人的電腦中的第二個cvtres.exe檔案所在的資料夾的名稱可能不一樣,但前面一定是“x86_netfx-cvtres_for_vc_and_vb*”,也有可能在C:\Windows\winsxs\資料夾下有多個x86_netfx-cvtres_for_vc_and_vb開頭的資料夾,開啟最新的那個即可,裡面儲存的就是cvtres.exe)

右鍵屬性|詳細資訊 檢視兩者版本號,將新版本的cvtres.exe檔案把舊版本覆蓋掉(當然覆蓋之前最好把舊版本的先做備份,以防意外可以恢復),我的顯示後者版本較新,故將C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.22733_none_a350e9690a5779a6\cvtres.exe檔案拷貝到..\Microsoft Visual Studio 10.0\vc\bin\資料夾下覆蓋原來的檔案。

重新編譯,問題解決!