Teilen über


Exemplarische Vorgehensweise: Kompilieren eines C-Programms in der Befehlszeile

Die Visual Studio-Buildtools enthalten einen C-Compiler, mit dem Sie alles von einfachen Konsolenprogrammen bis hin zu vollständigen Windows-Desktopanwendungen und mobilen Apps 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 diesem Handbuch wird erläutert, wie Sie mithilfe eines Text-Editors ein einfaches C-Programm für Hello, World-Format erstellen und dann in der 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

  • Entweder Visual Studio oder die Buildtools für Visual Studio und die Desktopentwicklung mit C++-Workload

    • 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 Befehlszeilentoolset, die Compiler, Tools und Bibliotheken, die Sie zum Erstellen von C- und C++-Programmen benötigen. Sie eignen sich ideal für Buildlabs oder Übungen im Schulungskontext und werden schnell installiert. Um nur das Befehlszeilentoolset zu installieren, laden Sie Buildtools für Visual Studio von der Visual Studio-Downloadseite herunter, 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.
  • MSVC-Compiler

    • 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 die Version Auswahl oben im Inhaltsverzeichnis auf dieser Seite.

Öffnen einer Developer-Eingabeaufforderung in Visual Studio 2022

Wenn Sie Visual Studio 2022 unter Windows 10 oder höher installiert haben, öffnen Sie das Startmenü, und wählen Sie "Alle Apps" aus. 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

Wenn Sie Visual Studio 2019 unter Windows 10 oder höher installiert haben, öffnen Sie das Startmenü, und wählen Sie "Alle Apps" aus. 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

Wenn Sie Visual Studio 2017 unter Windows 10 oder höher installiert haben, öffnen Sie das Startmenü, und wählen Sie "Alle Apps" aus. 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

Wenn Sie Microsoft Visual C++-Buildtools 2015 unter Windows 10 oder höher installiert haben, öffnen Sie das Startmenü, und wählen Sie "Alle Apps" aus. 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 der Entwickler-Eingabeaufforderung zu suchen und eine auszuwählen, die Ihrer installierten Version von Visual Studio entspricht. 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 vorherige Ausgabe dem angezeigten entspricht, können Sie C- oder C++-Programme in der Befehlszeile erstellen.

Hinweis

Wenn beim Ausführen des Befehls 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, verwenden Sie entweder keine Entwickler-Eingabeaufforderung, oder bei der Installation von Visual Studio ist ein Fehler aufgetreten. 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 von der Visual Studio-Downloadseite neu. 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 möglicherweise mit der rechten Maustaste klicken, um das Kontextmenü für die Verknüpfung mit der Eingabeaufforderung des Entwicklers zu öffnen, und wählen Sie dann "Als Administrator ausführen" aus, um das von Ihnen erstellte Programm erfolgreich zu erstellen und auszuführen, indem Sie diese exemplarische Vorgehensweise ausfü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. Dieses Verzeichnis enthält Ihre Quelldatei und das kompilierte Programm.

  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.

    Sie können den Namen des ausführbaren Programms in den Zeilen der Ausgabeinformationen sehen, hello.exedie der Compiler anzeigt:

    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 ein Fehler wie "cl" nicht als interner oder externer Befehl, operierbares Programm oder Batchdatei, Fehler C1034 oder Fehler LNK1104 erkannt wird, ist die Eingabeaufforderung für Entwickler 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.

Erweiterte Schritte

Dieses Beispiel für Hello, World ist so einfach, wie ein C-Programm abrufen kann. Reale Programme verfügen über Headerdateien und mehr Quelldateien, Link in Bibliotheken und machen 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

Und um mehr Programmierfehler automatisch zu erfassen, empfehlen wir Ihnen die Kompilierung mithilfe der Option "/W3" oder "/W4 ":

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

Der Compiler verfügt über viele weitere Optionen, cl.exedie Sie zum Erstellen, Optimieren, Debuggen und Analysieren Ihres Codes anwenden 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 MSVC-Compiler verwendet eine Grundregel, um zu bestimmen, welche Sprache beim 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 kompiliert und wird portierbarer C-Code wie erwartet kompiliert und ausgeführt. Der Compiler bietet optionale Unterstützung für die Änderungen in ISO C11 und C17. Um mit C11- und C17-Unterstützung zu kompilieren, verwenden Sie das Compiler-Flag /std:c11 oder /std:c17. C11- und C17-Unterstützung erfordert Windows SDK 10.0.20201.0 oder höher. 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