2013-04-25 51 views
2

我創建了一個VS 2010贏得32程序(操作系統:運8-64bit)衝突msvcprtd.lib(MSVCP100D.dll):致命錯誤LNK1112:模塊機器類型 'X86' 與目標機器類型 '64'

然後,我想這個Win32程序中做這樣的轉換爲64:

Configuration Manager -> new solution platform (select x64) -> copy settings from win32 

VS2010中創建基於之前的Win32程序一個新的x64程序。

但是,當我試圖編譯和運行x64程序時,出現一個錯誤: msvcprtd.lib(MSVCP100D.dll):致命錯誤LNK1112:模塊機器類型'X86'與目標機器類型'x64衝突'

通過重命名win32版本和msvcprtd.lib的x64版本,我發現該程序仍在使用win32 msvcprtd.lib。

我檢查發現msvcprtd.lib位於$(VCInstallDir)lib \ amd64中。此外:

庫目錄 - >繼承值已經包括了所有必要的目錄(我認爲):

$(VCInstallDir)lib\amd64 
$(VCInstallDir)atlmfc\lib\amd64 
$(WindowsSdkDir)lib\x64 

我也查了第三方庫和DLL的程序使用的是64位版本。

我的問題是爲什麼程序仍然使用win32 msvcprtd.lib以及如何解決這個問題?

+0

你 「清理」 你的項目? – 2013-04-25 13:39:12

+0

是的,清理和重建 – 2013-04-25 13:45:33

回答

1

搜索後我遇到了有用的頁面MSDN Info「這是一個衆所周知的問題,有時VC會從安裝的舊版本VC中獲取某些設置並導致這些類型的問題。」

3

在項目庫目錄,一定要改變

$(VCInstallDir)lib$(VCInstallDir)atlmfc\lib

$(VCInstallDir)lib\amd64$(VCInstallDir)atlmfc\lib\amd64

相關問題