Visual studio 2010 _VS2010中未定义AMD64 我在VS2010中创建了一个新的C++项目。我添加了x64作为新的解决方案平台。我尝试将“复制设置从”设置为“Win32”和“空”,但两者都不起作用\u AMD64。难道不是吗?对于64位的编译,是否还有另一个我不知道的步骤

Visual studio 2010 _VS2010中未定义AMD64 我在VS2010中创建了一个新的C++项目。我添加了x64作为新的解决方案平台。我尝试将“复制设置从”设置为“Win32”和“空”,但两者都不起作用\u AMD64。难道不是吗?对于64位的编译,是否还有另一个我不知道的步骤,visual-studio-2010,64-bit,Visual Studio 2010,64 Bit,在回答问题之前:我使用的是VS2010 Ultimate,Windows 7 64位x64编译器是在VS安装过程中选择的。您已经完成了所有步骤。默认情况下,Visual Studio不会预定义\u AMD64符号。如果要使用它,您需要自己定义它: #if defined _M_X64 || defined _M_AMD64 #define _AMD64_ #endif 但你不是在回忆它的存在。除了其他一些符号外,Windows DDK还提供了定义此符号的makefiles。签入make

在回答问题之前:我使用的是VS2010 Ultimate,Windows 7 64位x64编译器是在VS安装过程中选择的。

您已经完成了所有步骤。默认情况下,Visual Studio不会预定义
\u AMD64
符号。如果要使用它,您需要自己定义它:

#if defined _M_X64 || defined _M_AMD64
    #define _AMD64_
#endif
但你不是在回忆它的存在。除了其他一些符号外,Windows DDK还提供了定义此符号的makefiles。签入
makefile.def
。可能性是:

  • \u X86\u

    被称为x86、i386和IA-32的各种产品
    (这与VS预定义的
    \u M_IX86
    相同)

  • \u AMD64\u

    被称为AMD64、x64、x86-64、IA-32e和Intel 64的各种产品
    (这与VS预定义的
    \u M_X64
    \u M_AMD64
    相同)

  • \u IA64\u

    英特尔安腾(IA-64)
    (这与VS预定义的
    \u M_IA64
    相同)

  • …还有一些是针对无人瞄准的体系结构

理想情况下,您可以将构建系统配置为预定义一组已知宏,然后在自己的代码中使用这些宏。如果您没有构建系统,至少在预编译头文件中设置一些内容。这样,您就不必到处依赖依赖于实现的符号,而且切换编译器也不是一件大杂事。例如,GCC预定义的目标体系结构符号与MSVC非常不同。

使用WIN64/WIN64宏-