解決VS2010下【fatal error LNK1123】的問題,居然是dotNetFrameWork版本問題。

【症狀】

新建MFC工程,編譯通過,構建一下,提示如下錯誤。

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


【對此微軟官方是這樣解釋的】

http://msdn.microsoft.com/zh-cn/library/7dz62kfh.aspx


【第一次嘗試】

按照網上提供的辦法試了下:

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

結果不行,問題依舊。


【第二次嘗試】

在一個偏僻的角落裏發現了這麼一說:

方法2:給VS2010打SP1補丁。

但覺得MFC早在VC6時代就有了,到VS2010時代不可能出這麼大個bug啊,所以暫且保留方案沒有嘗試。


【成功的嘗試】

***後來發現,上面這兩種方法似乎只針對在電腦上同時安裝了VS2010和VS2012的用戶,但我電腦上只有VS2010,不存在版本衝突。

找zhu幫忙,他找到一個連接,打開一看,StackOverFlow上有人給出了這樣的迴應:(裏面第4個回答是關鍵)

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

裏面提到說有可能是.Net Framework版本問題,想起來新建工程時候默認選擇的是4.0,但電腦上裝的是4.5。不過微軟官方表示4.5是一次in place update,也就是說在4.0能用的東西,放到4.5下應該也沒有問題。所以抱着試一試的心態把4.5卸了,裝上4.0,重啓電腦,打開VS2010,載入工程,build,通過!終於出現窗口了。

***VS2010在安裝時會自動安裝4.0,所以你也可以選擇卸了4.5之後重裝VS2010,一樣的   ~=。=~   我知道你不會這麼做的,對吧。。。


好吧,我只能說我無語了。。。。。。搞了半天居然是.Net Framework版本的問題,升了個級你就開始耍脾氣了,真能耐。


最後套用zhu的一句話來結束本文:“ MS這種東西比較大牌,順着它的意思和想法你會有很爽的開發體驗。想折騰的話linux纔是王道 ”

希望這篇文能幫到你。



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