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

Visual Studio zawiera kompilator języka C i C++ wiersza polecenia. Za jego pomocą można tworzyć wszystko — od podstawowych aplikacji konsolowych po aplikacje platforma uniwersalna systemu Windows, aplikacje klasyczne, sterowniki urządzeń i składniki .NET.

W tym przewodniku utworzysz podstawowy program języka 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 do programowania aplikacji klasycznych w języku C++.

W tym przewodniku możesz użyć własnego programu w języku C++, zamiast wpisywać ten, który jest wyświetlany. Możesz też użyć przykładowego kodu C++ z innego artykułu pomocy.

Wymagania wstępne

Aby ukończyć ten przewodnik, musisz mieć zainstalowany program Visual Studio i opcjonalne tworzenie aplikacji klasycznych z obciążeniem C++ lub narzędzia wiersza polecenia Build Tools for Visual Studio.

Visual Studio to zintegrowane środowisko projektowe (IDE). Obsługuje ona 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ć tworzenie aplikacji w językach C i C++. Aby uzyskać informacje na temat pobierania i instalowania Visual Studio, zobacz Install C++ support in Visual Studio (Instalowanie obsługi języka C++ w programie Visual Studio).

Narzędzia Build Tools for Visual Studio tylko kompilatory, narzędzia i biblioteki wiersza polecenia potrzebne do kompilowania programów w językach C i C++. Doskonale nadaje się do tworzenia laboratoriów lub ćwiczeń na potrzeby zajęć i jest instalowany stosunkowo szybko. Aby zainstalować tylko narzędzia wiersza polecenia, poszukaj narzędzia Build Tools for Visual Studio na Visual Studio plików do pobrania.

Zanim będzie można skompilować program w języku C lub C++ w wierszu polecenia, sprawdź, czy narzędzia zostały zainstalowane, i uzyskaj do nich dostęp z wiersza polecenia. Visual C++ ma złożone wymagania dotyczące środowiska wiersza polecenia w celu znalezienia narzędzi, nagłówków i bibliotek, których używa. Nie można używać poleceń Visual C++ zwykłego okna wiersza polecenia bez przygotowania. Na szczęście program Visual C++ skróty, aby uruchomić wiersz polecenia dla deweloperów, który ma środowisko ustawione na kompilacje wiersza polecenia. Niestety nazwy skrótów wiersza polecenia dla deweloperów i ich miejsce są różne w niemal każdej wersji programu Visual C++ i w różnych wersjach Windows. Pierwszym zadaniem przewodnika jest znalezienie odpowiedniego zadania do użycia.

Uwaga

Skrót do wiersza polecenia dla deweloperów automatycznie ustawia prawidłowe ścieżki dla kompilatora i narzędzi oraz dla wymaganych nagłówków i bibliotek. Te wartości środowiska należy ustawić samodzielnie, jeśli używasz zwykłego okna wiersza polecenia. Aby uzyskać więcej informacji, zobacz Używanie MSVC zestawu narzędzi z wiersza polecenia. Zalecamy używanie skrótu wiersza polecenia dla deweloperów zamiast tworzenia własnego.

Otwieranie wiersza polecenia dla deweloperów

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

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

    Możesz również użyć funkcji wyszukiwania Windows, aby wyszukać "wiersz polecenia dla deweloperów" i wybrać taki, który jest odpowiedni dla zainstalowanej wersji Visual Studio. Użyj skrótu, aby otworzyć okno wiersza polecenia.

  2. Następnie sprawdź, czy Visual C++ wiersza polecenia dla deweloperów jest poprawnie skonfigurowany. W oknie wiersza polecenia wprowadź i cl sprawdź, czy dane wyjściowe wyglądają podobnie do tych:

    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ąpić różnice w bieżącym katalogu lub numerach wersji. Te wartości zależą od wersji Visual C++ i zainstalowanych aktualizacji. Jeśli powyższe dane wyjściowe są podobne do tych, które widzisz, możesz tworzyć programy w języku C lub C++ w wierszu polecenia.

    Uwaga

    Jeśli wystąpi błąd, taki jak "cl" nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy," błąd C1034 lub błąd LNK1104 cl podczas uruchamiania polecenia, to albo nie używasz wiersza polecenia dewelopera, albo coś jest nie tak z instalacją Visual C++. Aby można było kontynuować, należy rozwiązać ten problem.

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

    Uwaga

    W zależności od wersji programu Windows na komputerze i konfiguracji zabezpieczeń systemu może być konieczne kliknięcie prawym przyciskiem myszy, aby otworzyć menu skrótów dla skrótu wiersza polecenia dla deweloperów, a następnie wybrać polecenie Uruchom jako administrator, aby pomyślnie skompilować i uruchomić program, który utworzysz, korzystając z tego przewodnika.

Tworzenie Visual C++ źródłowego 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ć ten katalog. W tym katalogu tworzony jest zarówno plik źródłowy, jak i skompilowany program.

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

    Wybierz pozycję Tak Notatnik gdy zostanie wyświetlony monit o utworzenie nowego pliku. Ten krok powoduje otwarcie pustego Notatnik gotowego 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 jest prostym programem, który napisze jeden wiersz tekstu na ekranie, a następnie zakończy pracę. Aby zminimalizować liczbę błędów, skopiuj ten kod i wklej go do Notatnik.

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

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

  5. Wróć do okna wiersza polecenia dla deweloperów. Wprowadź dir w wierszu polecenia, aby wyświetlić listę zawartości katalogu c:\hello. Na liście katalogów powinien zostać wyświetlony plik źródłowy hello.cpp, 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.cppC:\hello że bieżący katalog roboczy w wierszu polecenia to 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 z rozszerzeniem .cpp nazwy pliku, a nie rozszerzeniem .txt . Plik źródłowy zostanie automatycznie zapisany w .cpp bieżącym katalogu jako plik, jeśli otworzysz plik Notatnik wierszu polecenia za pomocą notepad hello.cpp polecenia . Notatnik zachowanie jest inne, jeśli otworzysz go w inny sposób: domyślnie program Notatnik .txt dołącza rozszerzenie do nowych plików podczas ich zapisywania. Domyślnie są również zapisywanie plików w katalogu Dokumenty . Aby zapisać plik z rozszerzeniem w .cpp Notatnik, wybierz pozycję>PlikZamkń jako. W oknie dialogowym Zapisz jako przejdź do C:\hello folderu w kontrolce widoku drzewa katalogów. Następnie użyj kontrolki listy rozwijanej Zapisz jako typ, aby wybrać pozycję Wszystkie pliki (*.*). Wprowadź hello.cpp w kontrolce Edycja 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, który zawiera skompilowany kod, a następnie uruchamia linker, 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ć podobnie do:

    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 polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy," błąd C1034 lub błąd LNK1104, wiersz polecenia dewelopera nie jest poprawnie skonfigurowany. Aby uzyskać informacje na temat sposobu rozwiązania tego problemu, wróć do sekcji Otwieranie wiersza polecenia dla deweloperów.

    Uwaga

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

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

    Program wyświetli ten tekst i zakończy działanie:

    Hello, world, from Visual C++!
    

    Gratulacje, skompilowaliśmy i uruchamialiśmy program w języku C++ przy użyciu narzędzi wiersza polecenia.

Następne kroki

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

Kroki opisane w tym przewodniku można wykonać w celu skompilowania własnego kodu C++ zamiast wpisywania pokazanego przykładowego kodu. Te kroki umożliwiają również tworzenie wielu przykładowych programów kodu C++, które można znaleźć w innym miejscu. Kod źródłowy można umieścić i skompilować aplikacje w dowolnym katalogu zapisywalnym. Domyślnie program Visual Studio IDE 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 nakazuje kompilatorowi włączenie standardowego zachowania obsługi wyjątków języka C++. Bez tego zgłaszane wyjątki mogą spowodować niedestrogowane obiekty i przecieki zasobów. Aby uzyskać więcej informacji, zobacz /EH (Model obsługi wyjątków).

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

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

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

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 stosować do kompilowania, optymalizowania, debugowania i analizowania kodu. Aby uzyskać szybką listę, wprowadź w cl /? wierszu polecenia dewelopera. Można również kompilować i łączyć oddzielnie oraz stosować opcje łączenia w bardziej złożonych scenariuszach kompilacji. Aby uzyskać więcej informacji na temat opcji i użycia kompilatora i linkera, zobacz C/C++ Building Reference (Odwołanie do budowania w języku C/C++).

Możesz użyć NMAKE i plików make, MSBuild i plików projektu lub CMake, aby skonfigurować i kompilować bardziej złożone projekty w wierszu polecenia. Aby uzyskać więcej informacji na temat korzystania z tych narzędzi, zobacz NMAKE Reference, MSBuild, and CMake projects in Visual Studio (Informacje dotyczące NMAKE i projekty 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 .c traktuje pliki, które kończą się na , jako kod źródłowy języka C, a pliki, .cpp które kończą się na , jako kod źródłowy języka C++. Aby wymusić, aby kompilator traktować wszystkie pliki jako pliki C++ niezależnie od rozszerzenia nazwy pliku, użyj opcji kompilatora /TP .

Kompilator MSVC zawiera bibliotekę C Runtime Library (CRT), która jest zgodna ze standardem ISO C99, z niewielkimi wyjątkami. Kod przenośny zazwyczaj kompiluje się i działa zgodnie z oczekiwaniami. Niektóre przestarzałe funkcje biblioteki i kilka nazw funkcji POSIX są przestarzałe przez MSVC kompilatora. 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ż

Odwołanie do języka C++
Projekty i systemy kompilacji
MSVC opcje kompilatora