程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞,lnk1123coff

fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞,lnk1123coff

編輯:C++入門知識

fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞,lnk1123coff


為完成老師的任務,用c++寫個計算器,又去學點c++,結果就有各種問題,如題

http://www.cnblogs.com/newpanderking/articles/3372969.html

感謝這位大哥的帖子為我解決了這個坑爹的問題

 

vs2010 問題 >LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞

>LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞

問題說明:當安裝VS2012之後,原來的.NET 4.0會被替換為.NET 4.5。卸載VS2012時,不會恢復.NET 4.0。

  • l 當VS2012安裝後,VS2010的cvtres.exe就無法使用了。如果你的PATH環境變量中VS2010的工具路徑第一個出現,而且鏈接器需要將.res文件轉換為COFF 對象格式,就會導致LNK1123錯誤。
  • l 當VS生成PE文件頭時,使用的cvtres.exe版本錯誤,不能與當前的.NET平台兼容。

解決方案:

參考:

http://stackoverflow.com/questions/10888391/link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-invalid-or-c

因為是cvtres.exe版本錯誤導致的結果,所以凡是能使VS鏈接器找到正確的cvtres.exe版本的方法都可以解決該問題。或者使VS鏈接器不生成COFF的方法都可以。

【方法一】

  當前系統中存在兩個cvtres.exe文件,版本不同。讓VS2010使用.NET 4.5的cvtres.exe程序。

具體步驟:

重命名或刪除:(vs2010安裝的位置)C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe

這樣C:\Windows\Microsoft.NET\Framework\v4.0.30319 (.NET 4.5)中的cvtres.exe文件就可以被VS2010使用。

【方法二】

解決方法如下:
項目\屬性\配置屬性\清單工具\輸入和輸出\嵌入清單:原來是“是”,改成“否”。

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

【方法三】

安裝:VS2010 SP1. 該版本應該是能使用.NET 4.5的,並配有正確的cvtres.exe版本。

注意:安裝VS 2010 SP1 時會移除64-bit 編譯器. 通過安裝 VS 2010 SP1 compiler pack 能夠重新獲得。

【方法四】

卸載.NET 4.5,重裝.NET 4.0

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved