用Visual Studio 2010編譯一個C工程時突然遇到下面這個編譯錯誤。fatal error LINK1123:failure during conversion to COFF:file invalid or corrupt
工具/原料
vs2010
電腦
方法/步驟
首先設置
項目-->工程屬性->配置屬性-> 清單工具->輸入和輸出->嵌入清單,選擇[否]
如果上面方法不成功,則需關閉增量鏈接
Project Properties -> Configuration Properties -> Linker (General) -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"
如果上面方法還不成功,恭喜你,還有方法。。。
說明VS環境出問題了。
你是不是裝了更高版本的vs了,如vs2012 2013 2015
繼續調查發現原來是VS用來進行COFF格式轉換的工具cvtres.exe被破壞了。在命令行下直接執行cvtres.exe,就彈出窗口說進程啟動失敗。
而cvtres.exe被破壞的原因是因為我剛裝了.Net Framework 4.5,.Net Framework 4.5自帶了一個更新的cvtres.exe,卻讓原來VS2010中的cvtres.exe動不起來了。並且在VS編譯時,VS自帶的cvtres.exe在PATH環境變量的前面,所以COFF轉換失敗(不過VS報的錯誤太誤導人了)。VS2010中的cvtres.exe(已經壞了)C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exeC:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\cvtres.exe
.Net Framework 4.5安裝的cvtres.exe(可以用)C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exeC:\Windows\Microsoft.NET\Framework64\v4.0.30319\cvtres.exe
知道原因就很好解決了。把VS2010中的兩個cvtres.exe刪掉或改名字,讓VS可以使用.Net Framework 4.5安裝的cvtres.exe,就OK了。
重新編譯,問題解決!如果你還是沒有解決,訪問oxox.work網站找到我幫你解決