2012-03-02 98 views
1

我想編譯一個包含CUDA代碼的應用程序。我有一臺運行Windows 7的64位機器,並具有visual C++ 2008 express版本(免費版本)。爲了能夠使用cuda編譯器,我遵循了here的步驟。 cuda文件(擴展名* .cu)現在可以很好地編譯,但其他正常的C++文件使用32位,因爲在IDE的頂部(配置管理器)的下拉框中,它說Win32,所以我得到這個錯誤。配置管理器和命令行

fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' 

注意,在IDE我正確地設定目標機器鏈接器MachineX64(屬性 - >配置屬性 - >連接器 - >高級 - >目標機器)。然而,看着命令行,就是這樣的。

/OUT:"C:\Users\jan\Desktop\gpu\Release\gpu.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\CUDA\lib64" /LIBPATH:"../../common/lib" /MANIFEST /MANIFESTFILE:"Release\gpu.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\jan\Desktop\gpu\Release\gpu.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /DYNAMICBASE /NXCOMPAT /MACHINE:X64 /ERRORREPORT:PROMPT cudart.lib C:\CUDA\lib64\cudart.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib 

請注意,32位版本的運行時庫正在傳遞到命令行。我怎樣才能讓這個嚇人的編譯器使用64位。這與配置管理器有關。人們告訴我去configuration manager並在active solution platform下拉列表中選擇new,然後從那裏選擇x64。但type or select new platform下拉框爲空。請幫幫我。我瘋了。並且請注意,我安裝了完整的Windows SDK時,我的計算機中已安裝了所有64位編譯工具。

+0

這看起來很有趣,http://maliciousattacker.blogspot.com/2008/10/creating-64-bit-applications-with.html – MetallicPriest 2012-03-02 18:37:00

回答