Exemplarische Vorgehensweise: Kompilieren eines C-Programms in der Befehlszeile

Die Visual Studio-Buildtools enthalten einen C-Compiler, den Sie verwenden können, um alles von einfachen Konsolenprogrammen bis hin zu vollständigen Windows-Desktopanwendungen, mobilen Apps und mehr zu erstellen. 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 in C++ an der Befehlszeile arbeiten möchten, lesen Sie die exemplarische Vorgehensweise: Kompilieren eines nativen C++-Programms in der Befehlszeile. Wenn Sie die Visual Studio-IDE verwenden möchten, anstatt die Befehlszeile zu verwenden, lesen Sie die exemplarische Vorgehensweise: Arbeiten mit Projekten und Lösungen (C++) oder Verwenden der Visual Studio IDE für 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++-Workload 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 Visual Studio-Installationsprogramm die Desktopentwicklung mit C++-Workload (in älteren Versionen von Visual Studio, wählen Sie die C++-Buildtools-Workload aus), und wählen Sie "Installieren" aus.

Wenn Sie die Tools installiert haben, gibt es ein weiteres Tool, mit dem Sie ein C- oder C++-Programm in der Befehlszeile erstellen. MSVC hat 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 Verknüpfungen für Sie, um Entwicklerbefehle zu starten, die die Umgebung für Befehlszeilenbuilds eingerichtet haben. Leider unterscheiden sich die Namen der Entwickler-Eingabeaufforderungsverknüpfungen und deren Speicherort 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 Entwickler-Eingabeaufforderung ordnungsgemäß eingerichtet ist. Geben Sie cl im Eingabeaufforderungsfenster den Compilernamen ein (oder CL, falls nicht für den Compilernamen, aber es spielt keine Rolle für Compileroptionen). Die Ausgabe sollte in etwa so 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 Entwickler-Eingabeaufforderung oder ein Fehler bei der Installation von Visual Studio. Sie müssen das Problem beheben, bevor Sie fortfahren können.

Wenn Sie die Eingabeaufforderungsverknüpfung für Entwickler nicht finden oder beim Eingeben cleine Fehlermeldung erhalten, liegt möglicherweise ein Problem bei der Visual Studio-Installation vor. 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 wird file1.exe. Um den Namen zu program1.exeändern, fügen Sie eine /out-Linkeroption 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 den Compiler- und Linkeroptionen und deren Verwendung finden Sie unter Referenz zur C-/C++-Erstellung.

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 STANDARDS ANSI C89 und ISO C99 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 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++-Konsolenprogramms (C++)
C-Sprachreferenz
Projekte und Buildsysteme
Kompatibilität