VisualStudio,配置管理器,目标平台,x86,x64,win32 简介

一、先来说一下普通概念

 

    平台:我们常说的跨平台,通常是指操作系统和cpu的组合。

 

    微处理器:微处理来器是微型处理器的统称! 比如CPU、显卡的GPU、手机的处理源器,以及一些智能家电的处理器。

 

    x86:是一种架构,全称The X86 architecture。是微处理器执行的计算机语言指令集,泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构。最早的8086处理器于1978年由Intel推出,为16位微处理器

    Intel在早期以80x86这样的数字格式来命名处理器,Intel在早期以80x86这样的数字格式来命名处理器,包括Intel 8086、80186、8028680386以及80486,由于以“86”作为结尾,因此其架构被称为“x86”。所以说x86并不仅仅是32位的,只不过现在大多使用32位的,且向前兼容16位,所以现在x86通常说是32位。

    x86的32位架构一般又被称作IA-32,全名为“Intel Architecture, 32-bit”。

 

    x64:也叫x86-64,是x86架构64位拓展,向后兼容于16位及32位的x86架构。x64于1999年由AMD设计,AMD首次公开64位集以扩展给x86,称为“AMD64”。其后也为英特尔所采用,现时英特尔称之为“Intel 64”,一般也被称作“x86-64”、“x64”。

 

    值得注意的是,Intel也推出过IA-64架构,虽然名字上与“IA-32”相似,但两者完全不兼容,并不属于x86指令集架构家族。

 

    所以,在通常情况下

        win32是指windows 32位的操作系统,而支持32位操作系统的架构却不只有x86,比如常见的ARM。

        x86是指CPU的位,X86是指32位的CPU。

        x64是指64位CPU。

 

二、再来说一下VisualStudio

 

    其中,解决方案平台默认可选项有x86、x64,而项目平台的默认可选项有Win32、x64。而为什么会有Win32与x86之分?

 

    我们先来看一下MSDN怎么说:

        目标平台是指可执行文件将在此之上运行的各种设备和/或操作系统 。 可以生成多个平台的项目。 C++ 项目的可用目标平台取决于各种项目;包括但不限于 Win32、x64、ARM、Android 和 iOS。 可能在 Configuration Manager 中看到的 x86 目标平台等同于本机 C++ 项目中的 Win32 。 Win32 意味着 32 位的 Windows,而 x64 意味着 64 位的 Windows 。 有关这两个平台的详细信息,请参阅运行 32 位的应用程序

        可能在 Configuration Manager 中看到的任意 CPU 目标平台值对本机 C++ 项目无影响;而是与 C++/CLI 和其他 .NET 项目类型相关 。 有关详细信息,请参阅 /CLRIMAGETYPE(指定 CLR 映像的类型)

 

    所以大多数情况下,我们可以把x86等同于Win32,都表示32位Windows,而x64表示64位Windows。而且这种配置我们一般用的不多,毕竟64位兼容32位,vs创建项目一般默认是Win32,所以通常如果没有需要,一般就用默认Win32的目标平台。

    但是至于为什么VisualStudio中要把x86与Win32区别开,我到现在与没搞明白。希望兄弟们多多交流指教。

 

参考:

    微处理器

    微处理器和cpu的区别

    X86架构

    Inter x86

    X86-64

    MSDN