c++ - 配置管理器和命令行

标签 c++ visual-studio-2008 visual-c++ cuda x86-64

我正在尝试编译包含 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/

相关文章:

c++ - 下面描述的概念如何在 C++14 中设计?

future.get 上的 C++ bad_alloc 异常

c++ - catch exception by reference 是否需要删除?

c++ - Visual Studio C++ 2010 express 和 OpenGL

asp.net - Web 用户控制使用

visual-studio - 是否可以打开 VS2010、2008 和 2005 并编辑同一个项目?

visual-studio - 如何在 VC++ 2010 和 VC++ 2008 中无缝开发同一个作品?

c++ - 使用分配器构造函数的 uninitialized_X 函数?

c++ - 转发声明一个 boost::multi_index_container 对象

c# - 为什么 WCF 服务每次请求都会返回错误的值?