Wskazówki: kompilowanie natywnego programu C++ na wiersz polecenia

Program Visual Studio zawiera kompilator języka C i C++ wiersza polecenia. Służy do tworzenia wszystkich elementów— od podstawowych aplikacji konsolowych do aplikacji platforma uniwersalna systemu Windows, aplikacji klasycznych, sterowników urządzeń i składników platformy .NET.

W tym przewodniku utworzysz podstawowy program C++ w stylu "Hello, World" przy użyciu edytora tekstów, a następnie skompilujesz go w wierszu polecenia. Jeśli chcesz wypróbować środowisko IDE programu Visual Studio zamiast używać wiersza polecenia, zobacz Przewodnik: praca z projektami i rozwiązaniami (C++) lub Używanie środowiska IDE programu Visual Studio dla tworzenia aplikacji klasycznych w języku C++.

W tym przewodniku możesz użyć własnego programu języka C++ zamiast wpisywać pokazany program. Możesz też użyć przykładu kodu C++ z innego artykułu pomocy.

Wymagania wstępne

Aby ukończyć ten przewodnik, musisz mieć zainstalowany program Visual Studio i opcjonalny programowanie aplikacji klasycznych z obciążeniem języka C++ lub wiersz polecenia Build Tools for Visual Studio.

Visual Studio to zintegrowane środowisko projektowe (IDE). Obsługuje on w pełni funkcjonalny edytor, menedżerów zasobów, debugerów i kompilatorów dla wielu języków i platform. Dostępne wersje obejmują bezpłatną wersję Visual Studio Community, a wszystkie mogą obsługiwać programowanie w języku C i C++. Aby uzyskać informacje na temat pobierania i instalowania programu Visual Studio, zobacz Instalowanie obsługi języka C++ w programie Visual Studio.

Narzędzia Build Tools for Visual Studio instalują tylko kompilatory, narzędzia i biblioteki wiersza polecenia potrzebne do kompilowania programów C i C++. Jest idealny do tworzenia laboratoriów lub ćwiczeń na zajęciach i instaluje się stosunkowo szybko. Aby zainstalować tylko narzędzia wiersza polecenia, poszukaj narzędzi Build Tools for Visual Studio na stronie Pliki do pobrania programu Visual Studio.

Przed utworzeniem programu C lub C++ w wierszu polecenia sprawdź, czy narzędzia są zainstalowane, i możesz uzyskać do nich dostęp z poziomu wiersza polecenia. Język Visual C++ ma złożone wymagania dotyczące środowiska wiersza polecenia w celu znalezienia używanych narzędzi, nagłówków i bibliotek. Nie można używać języka Visual C++ w prostym oknie wiersza polecenia bez przygotowania. Na szczęście program Visual C++ instaluje skróty, aby uruchomić wiersz polecenia dla deweloperów, który ma środowisko skonfigurowane na potrzeby kompilacji wiersza polecenia. Niestety nazwy skrótów wiersza polecenia dla deweloperów i lokalizacji są różne w prawie każdej wersji programu Visual C++ i w różnych wersjach systemu Windows. Pierwsze zadanie instruktażowe polega na znalezieniu odpowiedniego zadania do użycia.

Uwaga

Skrót wiersza polecenia dla deweloperów automatycznie ustawia poprawne ścieżki kompilatora i narzędzi oraz dla wszystkich wymaganych nagłówków i bibliotek. Jeśli używasz zwykłego okna wiersza polecenia , musisz ustawić te wartości środowiska samodzielnie. Aby uzyskać więcej informacji, zobacz Use the MSVC toolset from the command line (Używanie zestawu narzędzi MSVC z wiersza polecenia). Zalecamy użycie skrótu wiersza polecenia dla deweloperów zamiast tworzenia własnego.

Otwieranie wiersza polecenia dla deweloperów

  1. Jeśli program Visual Studio 2017 lub nowszy został zainstalowany w systemie Windows 10 lub nowszym, otwórz menu Start i wybierz pozycję Wszystkie aplikacje. Przewiń w dół i otwórz folder programu Visual Studio (a nie aplikację programu Visual Studio). Wybierz pozycję Wiersz polecenia dla dewelopera dla programu VS , aby otworzyć okno wiersza polecenia.

    Jeśli zainstalowano narzędzia Microsoft Visual C++ Build Tools 2015 w systemie Windows 10 lub nowszym, otwórz menu Start i wybierz pozycję Wszystkie aplikacje. Przewiń w dół i otwórz folder Visual C++ Build Tools . Wybierz wiersz polecenia Visual C++ 2015 x86 Native Tools, aby otworzyć okno wiersza polecenia.

    Możesz również użyć funkcji wyszukiwania systemu Windows, aby wyszukać "wiersz polecenia dla deweloperów" i wybrać tę, która jest zgodna z zainstalowaną wersją programu Visual Studio. Użyj skrótu, aby otworzyć okno wiersza polecenia.

  2. Następnie sprawdź, czy wiersz polecenia dla deweloperów języka Visual C++ został poprawnie skonfigurowany. W oknie wiersza polecenia wprowadź cl i sprawdź, czy dane wyjściowe wyglądają mniej więcej tak:

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise>cl
    Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    usage: cl [ option... ] filename... [ /link linkoption... ]
    

    Mogą występować różnice w bieżącym katalogu lub numerach wersji. Te wartości zależą od wersji programu Visual C++ i zainstalowanych aktualizacji. Jeśli powyższe dane wyjściowe są podobne do widocznych, możesz przystąpić do kompilowania programów C lub C++ w wierszu polecenia.

    Uwaga

    Jeśli wystąpi błąd, taki jak "cl" nie jest rozpoznawany jako wewnętrzne lub zewnętrzne polecenie, program do obsługi lub plik wsadowy", błąd C1034 lub błąd LNK1104 podczas uruchamiania cl polecenia, albo nie używasz wiersza polecenia dla deweloperów, lub coś jest nie tak z instalacją programu Visual C++. Przed kontynuowaniem należy rozwiązać ten problem.

    Jeśli nie możesz znaleźć skrótu wiersza polecenia dla deweloperów lub jeśli podczas wprowadzania clwprowadzisz komunikat o błędzie, instalacja programu Visual C++ może mieć problem. Spróbuj ponownie zainstalować składnik Visual C++ w programie Visual Studio lub ponownie zainstalować narzędzia Microsoft Visual C++ Build Tools. Nie należy przechodzić do następnej sekcji, dopóki cl polecenie nie będzie działać. Aby uzyskać więcej informacji na temat instalowania i rozwiązywania problemów z programem Visual C++, zobacz Instalowanie programu Visual Studio.

    Uwaga

    W zależności od wersji systemu Windows na komputerze i konfiguracji zabezpieczeń systemu może być konieczne kliknięcie prawym przyciskiem myszy, aby otworzyć menu skrótów dla wiersza polecenia dewelopera, a następnie wybrać polecenie Uruchom jako administrator , aby pomyślnie skompilować i uruchomić utworzony program, postępując zgodnie z tym przewodnikiem.

Tworzenie pliku źródłowego Visual C++ i kompilowanie go w wierszu polecenia

  1. W oknie wiersza polecenia dewelopera wprowadź polecenie md c:\hello , aby utworzyć katalog, a następnie wprowadź polecenie cd c:\hello , aby zmienić katalog na ten katalog. W tym katalogu tworzony jest zarówno plik źródłowy, jak i skompilowany program.

  2. Wprowadź notepad hello.cpp polecenie w oknie wiersza polecenia.

    Wybierz pozycję Tak, gdy Notatnik monituje o utworzenie nowego pliku. Ten krok otwiera puste okno Notatnik gotowe do wprowadzenia kodu w pliku o nazwie hello.cpp.

  3. W Notatnik wprowadź następujące wiersze kodu:

    #include <iostream>
    using namespace std;
    int main()
    {
        cout << "Hello, world, from Visual C++!" << endl;
    }
    

    Ten kod to prosty program, który napisze jeden wiersz tekstu na ekranie, a następnie zakończy działanie. Aby zminimalizować błędy, skopiuj ten kod i wklej go do Notatnik.

  4. Zapisz swoją pracę! W Notatnik w menu Plik wybierz pozycję Zapisz.

    Gratulacje, utworzono plik źródłowy C++ hello.cpp, który jest gotowy do skompilowania.

  5. Wróć do okna wiersza polecenia dewelopera. Wprowadź dir polecenie w wierszu polecenia, aby wyświetlić listę zawartości katalogu c:\hello. Plik źródłowy hello.cpp powinien zostać wyświetlony na liście katalogów, który wygląda następująco:

    c:\hello>dir
     Volume in drive C has no label.
     Volume Serial Number is CC62-6545
    
     Directory of c:\hello
    
    05/24/2016  05:36 PM    <DIR>          .
    05/24/2016  05:36 PM    <DIR>          ..
    05/24/2016  05:37 PM               115 hello.cpp
                   1 File(s)            115 bytes
                   2 Dir(s)  571,343,446,016 bytes free
    
    

    Daty i inne szczegóły będą się różnić na komputerze.

    Uwaga

    Jeśli nie widzisz pliku kodu źródłowego, upewnij się, hello.cppże bieżący katalog roboczy w wierszu polecenia to C:\hello utworzony katalog. Upewnij się również, że jest to katalog, w którym zapisano plik źródłowy. Upewnij się, że kod źródłowy został zapisany przy użyciu .cpp rozszerzenia nazwy pliku, a nie .txt rozszerzenia. Plik źródłowy zostanie zapisany w bieżącym katalogu jako .cpp plik automatycznie, jeśli otworzysz Notatnik w wierszu polecenia przy użyciu notepad hello.cpp polecenia . Notatnik zachowanie jest inne, jeśli otworzysz go w inny sposób: domyślnie Notatnik dołącza .txt rozszerzenie do nowych plików podczas zapisywania. Domyślnie można również zapisywać pliki w katalogu Documents . Aby zapisać plik przy użyciu .cpp rozszerzenia w Notatnik, wybierz pozycję Plik>Zapisz jako. W oknie dialogowym Zapisz jako przejdź do C:\hello folderu w kontrolce widoku drzewa katalogów. Następnie użyj kontrolki rozwijanej Zapisz jako typ , aby wybrać pozycję Wszystkie pliki (*.*). Wprowadź hello.cpp w kontrolce Edytowanie nazwy pliku, a następnie wybierz pozycję Zapisz , aby zapisać plik.

  6. W wierszu polecenia dewelopera wprowadź polecenie cl /EHsc hello.cpp , aby skompilować program.

    Kompilator cl.exe generuje plik obj zawierający skompilowany kod, a następnie uruchamia konsolidator, aby utworzyć program wykonywalny o nazwie hello.exe. Ta nazwa jest wyświetlana w wierszach informacji wyjściowych wyświetlanych przez kompilator. Dane wyjściowe kompilatora powinny wyglądać mniej więcej tak:

    c:\hello>cl /EHsc hello.cpp
    Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    hello.cpp
    Microsoft (R) Incremental Linker Version 14.10.25017.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    /out:hello.exe
    hello.obj
    

    Uwaga

    Jeśli wystąpi błąd, taki jak "cl", nie jest rozpoznawany jako wewnętrzne lub zewnętrzne polecenie, program operacyjny lub plik wsadowy", błąd C1034 lub błąd LNK1104, wiersz polecenia dewelopera nie jest poprawnie skonfigurowany. Aby uzyskać informacje na temat rozwiązywania tego problemu, wróć do sekcji Otwórz wiersz polecenia dla deweloperów.

    Uwaga

    Jeśli wystąpi inny błąd kompilatora lub konsolidatora lub ostrzeżenie, przejrzyj kod źródłowy, aby poprawić wszelkie błędy, zapisz go i uruchom ponownie kompilator. Aby uzyskać informacje o określonych błędach, użyj pola wyszukiwania, aby wyszukać numer błędu.

  7. Aby uruchomić program hello.exe, w wierszu polecenia wprowadź .hello

    Program wyświetla ten tekst i kończy działanie:

    Hello, world, from Visual C++!
    

    Gratulacje, skompilujesz i uruchomisz program C++, używając narzędzi wiersza polecenia.

Następne kroki

Ten przykład "Hello, World" jest tak prosty, jak można uzyskać program C++. Programy w świecie rzeczywistym zwykle mają pliki nagłówkowe, więcej plików źródłowych i link do bibliotek.

Możesz użyć kroków opisanych w tym przewodniku, aby utworzyć własny kod języka C++ zamiast wpisywać pokazany przykładowy kod. Te kroki umożliwiają również utworzenie wielu przykładowych programów kodu C++, które znajdziesz gdzie indziej. Kod źródłowy można umieścić i skompilować aplikacje w dowolnym katalogu zapisywalnym. Domyślnie środowisko IDE programu Visual Studio tworzy projekty w folderze użytkownika w podfolderze source\repos . Starsze wersje mogą umieszczać projekty w folderze Documents\Visual Studio <version>\Projects .

Aby skompilować program z dodatkowymi plikami kodu źródłowego, wprowadź je wszystkie w wierszu polecenia, na przykład:

cl /EHsc file1.cpp file2.cpp file3.cpp

Opcja /EHsc wiersza polecenia instruuje kompilator, aby umożliwić standardowe zachowanie obsługi wyjątków języka C++. Bez niego zgłoszone wyjątki mogą spowodować niewystrojone obiekty i przecieki zasobów. Aby uzyskać więcej informacji, zobacz /EH (Model obsługi wyjątków).

Po podaniu dodatkowych plików źródłowych kompilator używa pierwszego pliku wejściowego do utworzenia nazwy programu. W tym przypadku generuje on program o nazwie file1.exe. Aby zmienić nazwę na program1.exe, dodaj /out konsolidator opcji:

cl /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe

Aby automatycznie przechwycić więcej błędów programowania, zalecamy skompilowanie przy użyciu opcji /W3 lub /W4 poziomu ostrzeżenia:

cl /W4 /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe

Kompilator cl.exe ma o wiele więcej opcji. Można je zastosować do tworzenia, optymalizowania, debugowania i analizowania kodu. Aby uzyskać szybką listę, wprowadź ciąg cl /? w wierszu polecenia dewelopera. Można również kompilować i łączyć oddzielnie i stosować opcje konsolidatora w bardziej złożonych scenariuszach kompilacji. Aby uzyskać więcej informacji na temat opcji kompilatora i konsolidatora oraz użycia, zobacz C/C++ Building Reference (Dokumentacja kompilatora i konsolidatora C/C++).

Można użyć narzędzia NMAKE i plików make, plików MSBuild i plików projektu lub narzędzia CMake, aby skonfigurować i tworzyć bardziej złożone projekty w wierszu polecenia. Aby uzyskać więcej informacji na temat korzystania z tych narzędzi, zobacz NMAKE Reference, MSBuild i CMake projects in Visual Studio (Dokumentacja narzędzia NMAKE, MSBuild i CMake w programie Visual Studio).

Języki C i C++ są podobne, ale nie takie same. Kompilator MSVC używa prostej reguły do określenia języka, który ma być używany podczas kompilowania kodu. Domyślnie kompilator MSVC traktuje pliki, które kończą się .c jako kod źródłowy języka C, i pliki, które kończą się .cpp jako kod źródłowy C++. Aby wymusić, aby kompilator potraktował wszystkie pliki jako C++ niezależnie od rozszerzenia nazwy pliku, użyj opcji kompilatora /TP .

Kompilator MSVC zawiera bibliotekę środowiska uruchomieniowego języka C (CRT), która jest zgodna ze standardem ISO C99 z niewielkimi wyjątkami. Kod przenośny zazwyczaj kompiluje i uruchamia się zgodnie z oczekiwaniami. Niektóre przestarzałe funkcje biblioteki i kilka nazw funkcji POSIX są przestarzałe przez kompilator MSVC. Funkcje są obsługiwane, ale preferowane nazwy uległy zmianie. Aby uzyskać więcej informacji, zobacz Funkcje zabezpieczeń w CRT i Ostrzeżenie kompilatora (poziom 3) C4996.

Zobacz też

Dokumentacja języka C++
Projekty i systemy kompilacji
Opcje kompilatora MSVC