Visual Studio 2015中的编译器

Max*_*lop 14 c++ visual-studio visual-c++ visual-studio-2015

谁能告诉我Visual Studio 2015 for C++项目内置了什么编译器?我尝试了它并尝试了旧版本的编译器,它给了我其他编译结果.它是GNU C++版本4.8.2还是更新版本?

Cor*_*mer 31

他们有自己的编译器,通过Visual C++ _____

以下是IDE版本与编译器版本的映射.他们发布了每个主要IDE版本的主要编译器版本.

Visual Studio 2005 - Visual C++ 8.0
Visual Studio 2008 - Visual C++ 9.0
Visual Studio 2010 - Visual C++ 10.0
Visual Studio 2012 - Visual C++ 11.0
Visual Studio 2013 - Visual C++ 12.0
Visual Studio 2015 - Visual C++ 14.0
Visual Studio 2017 - Visual C++ 14.1

因此,要明确回答您的问题,Visual Studio 2015使用编译器Visual C++ 14.0

  • 他们错过了与VS10/VC10同步版本的巨大机会.*叹*... (8认同)
  • 没有版本13.0; Visual Studio 2015内部版本为14.0.13被跳过了.发布年份用于营销名称; 版本号在内部使用.在一般性地讨论产品时,最好使用营销名称("Visual Studio 2015"或"Visual C++ 2015")以避免混淆.编译器二进制文件的版本号是不同的(本发行版中为19),因为编译器早于Visual C++产品; Visual C++编译器是从早期的C编译器发展而来的(参见https://en.wikipedia.org/wiki/Visual_C%2B%2B). (8认同)
  • 并且为了增加混乱,这是Visual Studio版本.VS 2015中的实际编译器版本是"19.00".使用``cl -Bv``.VS 2012为"17.00",VS 2013为"18.00". (4认同)
  • 如果您询问Visual Studio 2015 $(PlatformToolset)是什么,它将打印"v140".用于在将使用多个编译器版本构建的项目上设置构建路径.(比如图书馆.) (3认同)

Dor*_*rin 12

你可以得到一些有用的信息:

#include <stdio.h>

int main()
{
    printf("_MSC_VER : %d \n", _MSC_VER);
    printf("_MSC_FULL_VER : %d \n", _MSC_FULL_VER);
    printf("_MSC_BUILD : %d \n", _MSC_BUILD);

    #ifdef _MSVC_LANG
        printf("_MSVC_LANG : C++%d \n", (_MSVC_LANG/100)%2000);
    #endif

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

常见的MSVC版本:

MSVC++ 9.0 _MSC_VER == 1500(Visual Studio 2008)

MSVC++ 10.0 _MSC_VER == 1600(Visual Studio 2010)

MSVC++ 11.0 _MSC_VER == 1700(Visual Studio 2012)

MSVC++ 12.0 _MSC_VER == 1800(Visual Studio 2013)

MSVC++ 14.0 _MSC_VER == 1900(Visual Studio 2015)

MSVC++ 14.1 _MSC_VER == 1910(Visual Studio 2017)

宏解释:

_MSVC_LANG:定义为整数文字,指定编译器所针对的C++语言标准

_MSC_VER:包含主要和次要版本号作为整数(例如"1500"是版本15.00)

_MSC_FULL_VER:包含主要版本,次要版本和内部版本号作为整数(例如"150020706"是版本15.00.20706)

_MSC_BUILD:包含主版本,次版本和版本号后的版本号(例如"1"是版本1,例如15.00.20706.01)


yzt*_*yzt 8

Visual Studio中的C/C++编译器始终是由Microsoft构建的Microsoft C++编译器(不是基于其他任何东西.)

现在,这是编译器命名的方式:

Microsoft(R)C/C++优化编译器版本19.00.23026

在VS2015中,编译器可以定位x86和x64,以及ARM.它支持几乎所有的C++ 11和C99,以及C++ 14的大部分内容,以及一些C++ 17(或随时)草案.