『壹』 node.js編譯生成錯誤提示fatal error LNK1112/1123的解決方法
編譯生成可能遇到的問題
[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補丁,下載地址如下:http://www./softs/83189.html 安裝完重新生成,如果不行,試下一方法。
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 項目的其他資源文件中。
『貳』 keil如何關閉.map文件
map文件是通過編譯器編譯之後,集程序、數據及IO空間的一種映射文件。
很多技術牛逼的工程師在遇到內存越界,或溢出的情況,首先想到的就是分析map文件。通過map文件可以知道函數大小,入口地址等一些重要信息。
我們在Keil中最常見的就是在編譯之後,編譯窗口會顯示類似如下一段關於程序和數據大小的信息:
Program Size: Code=1112 RO-data=320 RW-data=0 ZI-data=1632
這一段提示信息其實是匯總了程序和數據的信息,這些信息其實是單個模塊匯總而成,在map文件里有詳細列表。
『叄』 怎樣VS2013下安裝Qt5的插件
下載安裝qt
安裝完成後打開VS2013,可以看到菜單欄上多出了一個「QT5」選項。
單擊上圖紅色標框中的「Qt options」,並在下圖中配置其環境變數。
變數名:VS2013_QT
路徑:F:\Qt\Qt5.3.0\5.3\msvc2013_64_opengl(QT5的安裝目錄)
完成目上步操作後即可在VS2013中新建QT項目,例如新建「QTEST」。
當編譯時會出現如下錯誤:
Qt5Widgetsd.lib(Qt5Widgetsd.dll) : fatal error LNK1112: 模塊計算機類型「x64」與目標計算機類型「X86」沖突
右擊QTEST項目,選擇「屬性」---「鏈接器」--「高級」---「目標計算機」,更改目標計算機為MachineX64 (/MACHINE:X64),並把平台改成「活動(x64)」。
接下來繼續配置QT5插件,單擊下圖中的QT工程設置把版本改為VS2013_QT5
再次編譯即可成功運行