編譯生成可能遇到的問題
[1]fatal error LNK1112: 模塊計算機類型“X86”與目標計算機類型“x64”沖突
原因:win7下的64位系統,在運行程序的時候,需要的DLL必須是64位系統編譯的,VS2010也必須在安裝的時候,選擇了32位編譯的支持。如果安裝的時候,已經選擇了,那么出現該問題的解決辦法:
(1)右鍵項目名,點擊屬性,彈出項目屬性頁,找到鏈接器----高級,修改右側的目標計算機,選擇有X64的那個選項。
(2)右鍵項目名,選擇清理解決方案,清理完之后選擇X64平臺編譯器,然后重新生成解決方案,便可以調試成功。選擇X64平臺編譯器如下圖:
如果如果在選擇平臺的下拉列表里找不到x64,則說明系統沒有安裝支持64位編譯,則可以找VS安裝文件進行增量安裝。
[2]fatalerrorLNK1123:轉換到COFF期間失敗:文件無效或損壞
安裝多個VS版本會 出現這個問題,解決方法一般如下:
a)微軟官方給出的具體解決方法是給VS2010打SP1補丁,下載地址如下:# 安裝完重新生成,如果不行,試下一方法。
b)微軟官方的另一個解決方案:發現是嵌入清單的問題,于是對該工程以及所有依賴工程進行如下操作:
右鍵->工程屬性->配置屬性-> 清單工具->輸入和輸出->嵌入清單,選擇[否]。rebuild 之,成功解決。
錯誤: 無法生成一個 Microsoft 基礎類的應用程序后添加新的資源文件,其中包含一個字符串表
癥狀
在 Visual C++.NET 中,Microsoft 基礎類 (MFC) 應用程序可以有多個資源 (.rc) 文件。但是,當您添加新的資源文件,其中包含一個字符串表,然后嘗試生成項目或保存資源文件時,您會收到以下錯誤消息:
"資源數據是無效的。
無法保存資源腳本。
在新的資源文件的字符串表中添加新的字符串項,然后嘗試重新生成該項目時可能會收到以下錯誤消息:
"致命的錯誤 CVT1100: 重復的資源。類型: 字符串、 名稱: 7、 語言: 0x0409"
"致命錯誤 LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞"
原因
第一個錯誤發生的原因的新的資源文件的字符串表中是沒有字符串項。
如果現有的資源文件和新的資源的字符串表中的 Id 文件沖突,可能會收到第二個錯誤消息。資源編譯器編譯字符串表,它保留一組 16 Id。例如,如果在字符串表中的第一個資源文件使用 ID 為 100,而 ID 110 用于在字符串表中的第二個資源文件,將發生沖突。
解決方案
要變通解決此問題,請按照下列步驟操作:
添加新的資源文件的字符串表中的字符串項。
為了避免沖突,請使用 Id 過于接近彼此不同的資源文件的 MFC 項目中的字符串。例如,如果一個資源文件中包含的字符串 ID 為 100,不要使用 ID 值范圍 100 至 115 中同一 MFC 項目的其他資源文件中。
歡迎轉載:http://www.kanwencang.com/bangong/20161212/67117.html
文章列表