2012-03-02 87 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

回答