我正在尝试编译包含 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 位。这与配置管理器有关吗?人们告诉我去 配置管理器
并在 active solution platform
下拉列表中选择 new
并从那里选择 x64。但是 type or select new platform
下拉菜单是空白的。请帮我。我快疯了。请注意,我的计算机中有所有 64 位编译工具,因为我安装了完整的 Windows SDK。
最佳答案
按照 this site 上给出的步骤进行操作.
关于c++ - 配置管理器和命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9538183/