VS2010 LINK1123:failure during conversion to COFF:file invalid or corrupt

本文主要內容來自http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20726500&id=4528320

今天導入一個新項目,發現出現Link error1123,甚是奇怪。

參考百度經驗,http://jingyan.baidu.com/article/fd8044faf0cbad5030137a41.html依然沒有解決,如下:

選中項目,右鍵properties


Manifest-->Input and Output-->Embed Manifest將yes修改爲no


但是該方法並沒有解決我的問題!!!並不是說沒有這種可能,但是我的問題不是那個原因

之後就找到本文的參考文章http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20726500&id=4528320

今天用Visual Studio 2010編譯一個C工程時突然遇到下面這個編譯錯誤。
fatal error LINK1123:failure during conversion to COFF:file invalid or corrupt

試了很多方法都沒有用,包括微軟官方的說明
http://blog.csdn.net/xiaowei_cqu/article/details/18229649
http://fisnikhasani.com/error-lnk1123-failure-during-conversion-to-coff-file-invalid-or-corrupt/
http://msdn.microsoft.com/en-us/library/7dz62kfh.aspx

開始以爲自己的項目文件有問題,可以通過編譯選項迴避,後來新建一個新的空C/C++項目,發現也是相同的問題,知道是VS環境出問題了。
繼續調查發現原來是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.exe
C:\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.exe
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\cvtres.exe


知道原因就很好解決了。把VS2010中的兩個cvtres.exe刪掉或改名字,讓VS可以使用.Net Framework 4.5安裝的cvtres.exe,就OK了。

完美解決我的問題。真是太感謝了~

2016.5.17 北京晴,溫度31攝氏度,提前入夏。是個週二,不爽的日子,又被導師說了,項目沒有進展,發愁。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章