Exemplarische Vorgehensweise: Kompilieren eines C-Programms in der Befehlszeile

Die Visual Studio Buildtools umfassen einen C-Compiler, mit dem Sie alles von grundlegenden Konsolenprogrammen bis hin zu vollständigen Windows Desktopanwendungen, mobilen Apps und mehr erstellen können. Microsoft C/C++ (MSVC) ist ein C- und C++-Compiler, der in seinen neuesten Versionen einigen der neuesten C-Sprachstandards entspricht, einschließlich C11 und C17.

In dieser exemplarischen Vorgehensweise erfahren Sie, wie Sie ein grundlegendes C++-Programm im „Hello World!“-Stil mithilfe eines Text-Editors erstellen und dieses dann über die Befehlszeile kompilieren. Wenn Sie lieber über die Befehlszeile in C++ arbeiten, finden Sie weitere Informationen unter Walkthrough: Compiling a Native C++ Program on the Command Line (Exemplarische Vorgehensweise: Kompilieren eines nativen C++-Programms in der Befehlszeile). Wenn Sie die Visual Studio-IDE testen möchten, anstatt die Befehlszeile zu verwenden, finden Sie weitere Informationen unter Exemplarische Vorgehensweise: Arbeiten mit Projekten und Projektmappen ( C++ ) oder Verwenden der Visual Studio-IDE für die C++-Desktopentwicklung.

Voraussetzungen

Um diese exemplarische Vorgehensweise abzuschließen, müssen Sie entweder Visual Studio oder die Buildtools für Visual Studio und die optionale Desktopentwicklung mit C++-Arbeitslast installiert haben.

Visual Studio ist eine leistungsstarke integrierte Entwicklungsumgebung, die einen voll funktionsfähigen Editor, Ressourcen-Manager, Debugger und Compiler für viele Sprachen und Plattformen unterstützt. Weitere Informationen zu diesen Features und zum Herunterladen und Installieren von Visual Studio, einschließlich der kostenlosen Visual Studio Community-Edition, finden Sie unter Installieren von Visual Studio.

Die Buildtools für Visual Studio installieren nur das Befehlszeilen-Toolset, die Compiler, Tools und Bibliotheken, die Sie benötigen, um C- und C++-Programme zu erstellen. Sie eignen sich ideal für Buildlabs oder Übungen im Schulungskontext und werden schnell installiert. Laden Sie von der Seite für Visual Studio-Downloads die Buildtools für Visual Studio herunter, um nur das Befehlszeilen-Toolset zu installieren, und führen Sie das Installationsprogramm aus. Wählen Sie im installationsprogramm Visual Studio die Desktopentwicklung mit C++-Arbeitslast (in älteren Versionen von Visual Studio, wählen Sie die Arbeitsauslastung der C++-Buildtools aus), und wählen Sie "Installieren" aus.

Wenn Sie die Tools installiert haben, gibt es ein anderes Tool, mit dem Sie ein C- oder C++-Programm in der Befehlszeile erstellen. MSVC verfügt über komplexe Anforderungen für die Befehlszeilenumgebung, um die tools, Header und Bibliotheken zu finden, die sie verwendet. Sie können MSVC nicht in einem einfachen Eingabeaufforderungsfenster ohne vorbereitung verwenden. Sie benötigen ein Developer-Eingabeaufforderung-Fenster, das ein reguläres Eingabeaufforderungsfenster ist, in dem alle erforderlichen Umgebungsvariablen festgelegt sind. Glücklicherweise installiert Visual Studio Tastenkombinationen, um Entwicklerbefehle zu starten, die die Umgebung für Befehlszeilenbuilds eingerichtet haben. Leider unterscheiden sich die Namen der Entwickler-Eingabeaufforderungsverknüpfungen und wo sie sich befinden, in fast jeder Version von Visual Studio und in verschiedenen Versionen von Windows. Ihre erste Aufgabe bei der exemplarischen Vorgehensweise besteht darin, die richtige Verknüpfung zu finden.

Hinweis

Eine Verknüpfung für die Developer-Eingabeaufforderung legt die richtigen Pfade für den Compiler und die Tools sowie für alle erforderlichen Header und Bibliotheken automatisch fest. Einige dieser Werte unterscheiden sich für jede Buildkonfiguration. Sie müssen diese Umgebungswerte selbst festlegen, wenn Sie keine der Verknüpfungen verwenden. Weitere Informationen finden Sie unter Verwenden des MSVC-Toolsets über die Befehlszeile. Da die Buildumgebung komplex ist, wird dringend empfohlen, eine Verknüpfung zu einer Developer-Eingabeaufforderung zu verwenden, anstatt ihre eigenen Verknüpfung zu erstellen.

Diese Anweisungen variieren je nachdem, welche Version von Visual Studio Sie verwenden. Um die Dokumentation für Ihre bevorzugte Version von Visual Studio anzuzeigen, verwenden Sie das Auswahlsteuerelement Version. Es befindet sich am Anfang des Inhaltsverzeichnisses auf dieser Seite.

Öffnen einer Developer-Eingabeaufforderung in Visual Studio 2022

Öffnen Sie das Startmenü, und klicken Sie auf Alle Apps, wenn Sie Visual Studio 2022 unter Windows 10 oder höher installiert haben. Scrollen Sie anschließend nach unten, und öffnen Sie den Ordner Visual Studio 2022 (nicht die Visual Studio 2022-App). Klicken Sie auf Developer Command Prompt for VS 2022 (Developer-Eingabeaufforderung für VS 2022), um das Eingabeaufforderungsfenster zu öffnen.

Öffnen einer Developer-Eingabeaufforderung in Visual Studio 2019

Öffnen Sie das Startmenü, und klicken Sie auf Alle Apps, wenn Sie Visual Studio 2019 unter Windows 10 oder höher installiert haben. Scrollen Sie anschließend nach unten, und öffnen Sie den Ordner Visual Studio 2019 (nicht die Visual Studio 2019-App). Klicken Sie auf Developer Command Prompt for VS 2019 (Developer-Eingabeaufforderung für VS 2019), um das Eingabeaufforderungsfenster zu öffnen.

Öffnen einer Developer-Eingabeaufforderung in Visual Studio 2017

Öffnen Sie das Startmenü, und klicken Sie auf Alle Apps, wenn Sie Visual Studio 2017 unter Windows 10 oder höher installiert haben. Scrollen Sie anschließend nach unten, und öffnen Sie den Ordner Visual Studio 2017 (nicht die Visual Studio 2017-App). Klicken Sie auf Developer Command Prompt for VS 2017 (Developer-Eingabeaufforderung für VS 2017), um das Eingabeaufforderungsfenster zu öffnen.

Öffnen einer Developer-Eingabeaufforderung in Visual Studio 2015

Öffnen Sie das Startmenü, und klicken Sie auf Alle Apps, wenn Sie Microsoft Visual C++ Build Tools 2015 unter Windows 10 oder höher installiert haben. Scrollen Sie anschließend nach unten, und öffnen Sie den Ordner Visual C++ Build Tools. Klicken Sie auf Visual C++ 2015 x86 Native Tools Command Prompt (Visual C++ 2015 x86 Native Tools-Eingabeaufforderung), um das Eingabeaufforderungsfenster zu öffnen.

Wenn Sie eine andere Version von Windows verwenden, suchen Sie im Startmenü oder auf der Startseite nach einem Ordner mit Visual Studio-Tools, der eine Verknüpfung für eine Developer-Eingabeaufforderung enthält. Sie können auch die Windows-Suchfunktion verwenden, um nach „Developer-Eingabeaufforderung“ zu suchen und die Version anzuklicken, die mit der installierten Version von Visual Studio übereinstimmt. Verwenden Sie die Verknüpfung, um das Eingabeaufforderungsfenster zu öffnen.

Überprüfen Sie als Nächstes, ob die Eingabeaufforderung für Entwickler ordnungsgemäß eingerichtet ist. Geben Sie cl in das Eingabeaufforderungsfenster ein (oder CL, falls der Compilername nicht wichtig ist, aber es spielt für Compileroptionen eine Rolle). Die Ausgabe sollte ungefähr wie folgt aussehen:

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... ]

Je nach Version von Visual Studio und installierten Updates gibt es möglicherweise Unterschiede in den aktuellen Verzeichnis- oder Versionsnummern. Wenn die oben genannte der angezeigten Ausgabe ähnelt, können Sie C- oder C++-Programme über die Befehlszeile erstellen.

Hinweis

Wenn Ein Fehler wie "cl" nicht als interner oder externer Befehl, operierbares Programm oder Batchdatei erkannt wird, fehler C1034 oder Fehler LNK1104, wenn Sie den Cl-Befehl ausführen, dann verwenden Sie entweder keine Entwicklerbefehlsaufforderung, oder etwas ist bei der Installation von Visual Studio falsch. Sie müssen das Problem beheben, bevor Sie fortfahren können.

Wenn Sie die Eingabeaufforderungsverknüpfung des Entwicklers nicht finden oder beim Eingeben cleine Fehlermeldung erhalten, hat ihre Visual Studio Installation möglicherweise ein Problem. Wenn Sie Visual Studio 2017 oder höher verwenden, können Sie versuchen, die Desktopentwicklung mit C++ -Workload im Visual Studio-Installationsprogramm neu zu installieren. Weitere Informationen finden Sie unter Installieren der C++-Unterstützung in Visual Studio. Oder installieren Sie die Buildtools auf der Seite Visual Studio-Downloads erneut. Fahren Sie nicht mit dem nächsten Abschnitt fort, bis der cl -Befehl funktioniert. Weitere Informationen zur Installation und Problembehandlung von Visual Studio finden Sie unter Installieren von Visual Studio.

Hinweis

Abhängig von der Version von Windows auf dem Computer und der Systemsicherheitskonfiguration müssen Sie ggf. mit der rechten Maustaste das Kontextmenü für die Verknüpfung der Developer-Eingabeaufforderung öffnen und dann auf Als Administrator ausführen klicken, um das Programm gemäß den Schritten dieser exemplarischen Vorgehensweise zu erstellen und auszuführen.

Erstellen einer C-Quelldatei und Kompilieren dieser über die Befehlszeile

  1. Geben Sie im Fenster der Developer-Eingabeaufforderung cd c:\ ein, um das aktuelle Arbeitsverzeichnis in das Stammverzeichnis des Laufwerks C: zu ändern. Als Nächstes geben Sie md c:\hello ein, um ein Verzeichnis zu erstellen. Geben Sie anschließend cd c:\hello ein, um zu diesem Verzeichnis zu wechseln. In diesem Verzeichnis werden die Quelldatei und das kompilierte Programm gespeichert.

  2. Geben Sie in die Developer-Eingabeaufforderung notepad hello.c ein. Wählen Sie im angezeigten Dialogfeld mit der Editor-Warnung Ja, um eine neue hello.c -Datei in Ihrem Arbeitsverzeichnis zu erstellen.

  3. Geben Sie im Editor die folgenden Codezeilen ein:

    #include <stdio.h>
    
    int main()
    {
        printf("Hello, World! This is a native C program compiled on the command line.\n");
        return 0;
    }
    
  4. Wählen Sie in der Editor-Menüleiste Datei>Speichern, um hello.c in Ihrem Arbeitsverzeichnis zu speichern.

  5. Wechseln Sie zurück zum Developer-Eingabeaufforderungsfenster. Geben Sie dir in die Eingabeaufforderung ein, um den Inhalt des Verzeichnisses c:\hello aufzulisten. Die Quelldatei hello.c sollte in der Verzeichnisauflistung angezeigt werden, die in etwa wie folgt aussieht:

    C:\hello>dir
     Volume in drive C has no label.
     Volume Serial Number is CC62-6545
    
     Directory of C:\hello
    
    10/02/2017  03:46 PM    <DIR>          .
    10/02/2017  03:46 PM    <DIR>          ..
    10/02/2017  03:36 PM               143 hello.c
                   1 File(s)            143 bytes
                   2 Dir(s)  514,900,566,016 bytes free
    
    

    Die Datumsangaben und andere Details werden sich auf Ihrem Computer von den hier gezeigten unterscheiden. Wenn die Quellcodedatei hello.c nicht angezeigt wird, vergewissern Sie sich, dass Sie in das von Ihnen erstellte Verzeichnis c:\hello gewechselt sind. Stellen Sie zudem im Editor sicher, dass Sie die Quelldatei in diesem Verzeichnis gespeichert haben. Stellen Sie außerdem sicher, dass Sie den Quellcode mit der Dateinamenerweiterung .c und nicht mit der .txt -Erweiterung gespeichert haben.

  6. Geben Sie in die Developer-Eingabeaufforderung cl hello.c ein, um das Programm zu kompilieren.

    Der Name des ausführbaren Programms „hello.exe“ wird in den vom Compiler erzeugten Ausgabeinformationen angezeigt:

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

    Hinweis

    Wenn eine Fehlermeldung wie z. B. "'cl' is not recognized as an internal or external command, operable program or batch file" („cl“ wurde nicht als interner oder externer Befehl, ausführbares Programm oder Batchdatei erkannt.), Fehler C1034 oder Fehler LNK1104 ausgegeben wird, ist die Developer-Eingabeaufforderung nicht ordnungsgemäß eingerichtet. Weitere Informationen zum Beheben dieses Problems finden Sie im Abschnitt Öffnen einer Developer-Eingabeaufforderung.

    Überprüfen Sie den Quellcode, um Fehler zu beheben, ihn zu speichern und den Compiler dann noch mal auszuführen, wenn Sie einen anderen Compiler- oder Linkerfehler oder eine andere Warnung erhalten. Verwenden Sie das Suchfeld oben auf dieser Seite, um nach der Fehlernummer zu suchen und Informationen zu bestimmten Fehlern zu erhalten.

  7. Geben Sie hello in der Eingabeaufforderung ein, um das Programm auszuführen.

    Das Programm zeigt folgenden Text an und wird anschließend beendet:

    Hello, World! This is a native C program compiled on the command line.
    

    Herzlichen Glückwunsch, Sie haben mithilfe der Befehlszeile ein C-Programm kompiliert und ausgeführt.

Nächste Schritte

Dieses „Hello World“-Beispiel ist die einfachste Form eines C-Programms. Programme der realen Welt verfügen über Headerdateien und weitere Quelldateien, sind in Bibliotheken eingebunden und leisten nützliche Arbeit.

Sie können die Schritte in dieser exemplarischen Vorgehensweise verwenden, um Ihren eigenen C-Code zu erstellen, anstatt den gezeigten Beispielcode einzugeben. Außerdem können Sie viele C-Codebeispielprogramme erstellen, die Sie auch an anderer Stelle finden. Um ein Programm mit weiteren Quellcodedateien zu kompilieren, geben Sie sie alle in der Befehlszeile ein:

cl file1.c file2.c file3.c

Der Compiler gibt ein Programm aus, das aufgerufen file1.exewird. So ändern Sie den Namen in program1.exe, fügen Sie eine /out Linker-Option hinzu:

cl file1.c file2.c file3.c /link /out:program1.exe

Es empfiehlt sich, mithilfe der Warnstufenoptionen /W3 oder /W4 zu kompilieren, um automatisch weitere Programmierfehler zu erfassen:

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

Der Compiler, „cl.exe“, bietet viele weitere Optionen, die Sie zum Erstellen, Optimieren, Debuggen und Analysieren Ihres Codes nutzen können. Geben Sie cl /? in die Developer-Eingabeaufforderung ein, um eine kurze Liste anzuzeigen. Sie können die Kompilierung und Verknüpfung auch separat vornehmen und Linkeroptionen in komplexeren Buildszenarios anwenden. Weitere Informationen zu Compiler- und Linkeroptionen und -verwendung finden Sie unter C/C++ Building Reference.

Sie können NMAKE und Makefiles oder MSBuild und Projektdateien zum Konfigurieren und Erstellen komplexerer Projekte in der Befehlszeile verwenden. Weitere Informationen zur Verwendung dieser Tools finden Sie unter NMAKE-Referenz und MSBuild.

Die C- und C++-Sprachen sind ähnlich, aber nicht identisch. Der Microsoft C/C++-Compiler (MSVC) verwendet eine einfache Regel, um zu bestimmen, welche Sprache zum Kompilieren des Codes verwendet werden soll. Standardmäßig behandelt der MSVC-Compiler alle auf .c endenden Dateien als C-Quellcode und alle auf .cpp endenden Dateien als C++-Quellcode. Wenn Sie erzwingen möchten, dass vom Compiler alle Dateien unabhängig von der Dateierweiterung als C behandelt werden, verwenden Sie die Compileroption /TC.

Standardmäßig ist MSVC mit den ANSI C89- und ISO C99-Standards kompatibel, aber nicht streng konform. In den meisten Fällen wird der portierbare C-Code wie erwartet kompiliert und ausgeführt. Der Compiler bietet optional Unterstützung für die Änderungen in ISO C11/C17. Verwenden Sie zum Kompilieren mit der Unterstützung von C11/C17 das Compilerflag /std:c11 oder /std:c17. Für die Unterstützung von C11/C17 ist das Windows SDK 10.0.20201.0 oder höher erforderlich. Die Verwendung von Windows SDK 10.0.22000.0 oder höher wird empfohlen. Sie können das neueste SDK von der Windows SDK-Seite herunterladen. Weitere Informationen und Anweisungen zum Installieren und Verwenden dieses SDK für die C-Entwicklung finden Sie unter Installieren der Unterstützung für C11 und C17 in Visual Studio.

Bestimmte Bibliotheksfunktionen und POSIX-Funktionsnamen werden von MSVC als veraltet markiert. Die Funktionen werden unterstützt, aber die bevorzugten Namen wurden geändert. Weitere Informationen finden Sie unter Sicherheitsfunktionen in der CRT und Compilerwarnung C4996 (Stufe 3).

Siehe auch

Exemplarische Vorgehensweise: Erstellen eines Standard C++-Programms (C++)
C-Sprachreferenz
Projekte und Buildsysteme
Kompatibilität