用VS2010進行CMAKE的時候“LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞”

原文鏈接:https://www.cnblogs.com/zklidd/p/3838187.html

由於要編譯LTP,LTP在MINGW下又不能編譯,所以忍痛安裝了VS2010+CMAKE。

由於VS在本科時候虐我千百遍,所以一直心存陰影。。。

轉入正題,當cmake的時候, 它提示 “LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞”

於是上網搜結果,基本上都是“VS 2010下,打開實例的時候出現錯誤”,附帶傳送門 http://bbs.csdn.net/topics/390121452

解決方案也傳送到這裏:

“VS2010在經歷一些更新後,建立Win32 Console Project時會出“error LNK1123” 錯誤,解決方案爲將 項目|項目屬性|配置屬性|清單工具|輸入和輸出|嵌入清單 “是”改爲“否”即可,但是沒新建一個項目都要這樣設置一次。
在建立VS2010 Win32 Project項目時,按照上面解決方案依然發生了“error LNK1123”錯誤,經過上網查資料,解決方案爲:
第一步:與上相同。
第二步:將 項目|項目屬性|配置屬性|連接器|清單文件|嵌入清單 “是”改爲“否”。
第三步:一般計算機經過上兩步設置就能解決問題了,但是如果還有問題,那就按一下方法解決:
計算機是否爲64bit操作系統,如是,繼續2。
查找是否有兩個cvtres.exe。一個是C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe, 另一個是C:\Windows\Microsoft.NET\Framework\v
4.0.30319\cvtres.exe。右鍵屬性|詳細信息 查看兩者版本號,刪除/重命名較舊的版本,或者重新設置Path變量。

意外的是,治本的辦法是第三步,刪除舊版本的cvtres.exe後,就不需要每次都設置配置了。”

但是但是!!咱們用的是CMAKE又不是VS2010的時候出的問題,所以我們還是得從源頭找問題。

轉折點是在http://blog.csdn.net/rryr2/article/details/8221357裏面說到的,

“VS2010和VS2012或者sv2008和VS2010,高版本VS編譯都會出現,使用VS2008的D:\Program Files\Microsoft Visual Studio 9.0\VC\bin目錄下的cvtres.exe替換到VS2010版本VS目錄下再編譯成功。”

他提示VS不同版本直接的cvtres不一樣,如果低版本的工程用高版本打開時會有標題中說的問題。又得知LTP是在VS2008裏面編譯的,所以把VS2008裏的cvtres.exe拷到VS2010裏面。cmake成功,搞定

https://www.cnblogs.com/zklidd/p/3838187.html

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