2015-08-07 21 views
7

Czy ktoś może mi powiedzieć, jaki kompilator jest wbudowany w Visual Studio 2015 dla projektów C++? Wypróbowałem to i wypróbowałem starsze wersje kompilatorów i daje mi to inne wyniki kompilacji. Czy jest to wersja 4.0.2 lub nowsza wersja GNU C++?Jaki kompilator jest w Visual Studio 2015

+3

Jego własny kompilator Microsoftu. – john

+1

Skąd pomysł, że Visual Studio w jakiś sposób używa domyślnie kompilatora GNU? –

+0

Nie wiedziałem o tym, czego używa, szukałem w Internecie i nie znalazłem nic odpowiedniego – MaxDevelop

Odpowiedz

21

Mają swój własny kompilator, który przechodzi przez Visual C++ _____

Oto mapping wersji IDE do wersji kompilatora. Wydają ważną wersję kompilatora z każdą główną wersją 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
wizualna Studio 2015 - Visual C++ 14,0
Visual Studio 2017 - Visual C++ 14,1

więc jednoznacznie odpowiedzieć na to pytanie, Visual Studio 2015 wykorzystuje kompilator Visual C++ 14,0

+0

Myślę, że z jakiegoś powodu pominęli wersję w VS2015 i zdecydowali się przejść do wersji 14. To bardzo mylące. Oprócz wersji VS i wersji VC istnieje również aktualna wersja kompilatora, która ma teraz 19.0. – yzt

+1

@yzt Tak, to jest mylące. W większości miejsc, które widziałem, reklamują się i oznaczają je jako VS2015, ale na przykład kompilator i powiązane pliki znajdują się w folderze o nazwie "Microsoft Visual Studio 14.0". –

+0

@ R2-Dequeue Dokładnie. A jeśli uruchomisz 'cl.exe', który jest właściwym kompilatorem, zgłosi wersję 19.00! – yzt

7

C/C++ kompilator Visual Studio jest i zawsze była Microsoft kompilator C++, zbudowany przez Microsoft (nie oparte na niczym innym.)

Teraz, to jak nazwy kompilatora się do:

Microsoft (R) C/C++ Optymalizacja kompilator wersja 19.00.23026

W VS2015, kompilator może x86 i 64, jak i ramię. Obsługuje prawie wszystkie C++ 11 i C99, oraz dużą część C++ 14, a także trochę wersji C++ 17 (lub zawsze).

+0

Dzięki. Informacje są dokładnie tym, czego szukałem;) – Zeek

7

można uzyskać pewne użyteczne informacje działa następująco:

#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; 
} 

Common msvc wersje:

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)

Makra interpretacja:

_MSVC_LANG: definiowany jako liczba całkowita dosłownym, który określa standard języka C++ kierowane przez kompilator

_MSC_VER: zawiera numer wersji głównej i pomocniczej jako liczbę całkowitą (np. "1500" to wersja 15.00)

_MSC_FULL_VER: zawiera wersję główną, wersję dodatkową i numery kompilacji jako liczbę całkowitą (np. „150020706” jest wersja 15.00.20706)

_MSC_BUILD: zawiera numer wersji po wersji głównej, wersja pomocnicza i zbudować numery (np „1” jest rewizja 1, jak na 15.00.20706.01)

0

Zasadniczo Visual Studio 2015 obsługuje kompilator Visual C++ 14.0. Aby uzyskać więcej szczegółów, możesz śledzić, które funkcje C++ 14.0 zostały już zaimplementowane: here.

Ponadto, podoba mi się odpowiedź Dorina, wskazał a way, aby sprawdzić wersję kompilatora z kodem.

Powiązane problemy