2010-12-08 61 views
0

我嘗試在我的windows 32位上以64位編譯原生的Visual Studio 2008 C++程序。以64位編譯原生C++程序的麻煩

我在鏈接期間發生錯誤,因爲沒有找到版本號爲msvcprtd.lib的64位數據。

msvcprt.lib(MSVCP90.dll) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' 

我已經安裝了的Microsoft Windows的最新版本SDK但我不能發現的x64目錄msvcprtd.lib文件。

+0

當你不允許重新分配調試DLL時,爲什麼你要交叉編譯進行調試? – 2010-12-08 17:21:37

回答

0

msvcprtd.lib沒有出現在我最新的SDK中,位數爲32或64。但我確實在SDK的5.0版本中看到了它,但僅適用於IA64平臺類型。

也許那個lib根本不存在。嘗試從您鏈接的lib列表中刪除它,然後查看出現的錯誤,使用這些錯誤搜索可能會導致您想要鏈接的lib名稱。

0

嘗試此操作:轉至您的項目屬性 - >配置管理器,然後創建一個配置管理器,將x64指定爲平臺並將其設置爲活動狀態。

0

我的簡短回答是你確定你已經安裝了交叉編譯器。我記得在嘗試在32位XP上編譯64位二進制文​​件時發瘋,當時我意識到我沒有安裝交叉編譯器。 (讓我的Visual Studio媒體得心應手是有幫助的)。

也作爲Madhur說確保您的配置設置爲64位。

1

此錯誤可能是由於沒有設置庫引用x64的目錄。如果將新的x64配置添加到項目中,很容易發生這種情況。最簡單的解決方案是創建一個包含win32和x64的項目的新解決方案,然後查看項目屬性中的VC++目錄/庫目錄,並確保您在項目中擁有的相同。