Exemplarische Vorgehensweise: Kompilieren eines systemeigenen C++-Programms in der Befehlszeile
Visual Studio enthält einen C- und C++-Befehlszeilencompiler. Sie können ihn verwenden, um von grundlegenden Konsolen-Apps bis hin zu Universelle Windows-Plattform-Apps, Desktop-Apps, Gerätetreibern und .NET-Komponenten alles zu erstellen.
In dieser exemplarischen Vorgehensweise erstellen Sie zunächst ein grundlegendes C++-Programm im „Hello World!“-Stil mithilfe eines Text-Editors und kompilieren dieses dann über die 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.
In dieser exemplarischen Vorgehensweise können Sie anstelle des hier erwähnten Programms auch Ihr eigenes C++-Programm verwenden. Sie können auch ein C++-Codebeispiel aus einem anderen Hilfeartikel verwenden.
Voraussetzungen
Für die Durchführung dieser exemplarischen Vorgehensweise müssen entweder Visual Studio und die optionale Workload Desktopentwicklung mit C++ oder die Befehlszeilenbuildtools für Visual Studio installiert sein.
Visual Studio ist eine integrierte Entwicklungsumgebung (IDE). Diese unterstützt einen umfangreichen Editor, Ressourcen-Manager, Debugger und Compiler für viele Sprachen und Plattformen. Zu den verfügbaren Versionen gehört die kostenlose Visual Studio Community-Edition, die alle die C- und C++-Entwicklung unterstützen. Informationen zum Herunterladen und Installieren von Visual Studio finden Sie unter Installieren der C++-Unterstützung in Visual Studio.
Die Buildtools für Visual Studio installieren nur die Befehlszeilencompiler, 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. Suchen Sie auf der Seite für Visual Studio-Downloads nach den Buildtools für Visual Studio, um nur die Befehlszeilentools zu installieren.
Überprüfen Sie, ob die Tools installiert sind und Sie über die Befehlszeile darauf zugreifen können, bevor Sie ein C- oder C++-Programm über die Befehlszeile erstellen. Visual C++ hat komplexe Anforderungen an die Befehlszeilenumgebung hinsichtlich der Suche nach den verwendeten Tools, Headern und Bibliotheken. Sie können Visual C++ nicht in einem einfachen Eingabeaufforderungsfenster ohne bestimmte Vorbereitungen verwenden. Glücklicherweise installiert Visual C++ Verknüpfungen zum Starten einer Developer-Eingabeaufforderung, in der die Umgebung für Befehlszeilenbuilds eingerichtet ist. Leider unterscheiden sich die Namen der Verknüpfungen für die Developer-Eingabeaufforderung und deren Position in nahezu jeder Version von Visual C++ und unterschiedlichen Versionen von Windows. Die erste Aufgabe bei der exemplarischen Vorgehensweise besteht darin, herauszufinden, welche Verknüpfung sich am besten eignet.
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. Sie müssen diese Umgebungswerte selbst festlegen, wenn Sie ein reguläres Eingabeaufforderungsfenster verwenden. Weitere Informationen finden Sie unter Verwenden des MSVC-Toolsets über die Befehlszeile. Es wird empfohlen, dass Sie eine Verknüpfung für die Developer-Eingabeaufforderung verwenden, anstatt Ihre eigene zu entwickeln.
Öffnen einer Developer-Eingabeaufforderung
Wenn Sie Visual Studio 2017 oder höher auf Windows 10 oder höher installiert haben, öffnen Sie das Startmenü, und klicken Sie auf Alle Apps. Scrollen Sie nach unten, und öffnen Sie den Ordner Visual Studio (nicht die Visual Studio-Anwendung). Klicken Sie auf Developer Command Prompt for VS (Developer-Eingabeaufforderung für VS), um das Eingabeaufforderungsfenster zu öffnen.
Wenn Sie Microsoft Visual C++ Build Tools 2015 auf Windows 10 oder höher installiert haben, öffnen Sie das Startmenü, und klicken Sie auf Alle Apps. Scrollen Sie nach unten, und öffnen Sie den Ordner Visual C++-Buildtools. Klicken Sie auf Visual C++ 2015 x86 Native Tools Command Prompt (Visual C++ 2015 x86 Native Tools-Eingabeaufforderung), um das Eingabeaufforderungsfenster zu öffnen.
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 Visual C++-Developer-Eingabeaufforderung ordnungsgemäß eingerichtet ist. Geben Sie im Eingabeaufforderungsfenster
cl
ein, und überprüfen Sie, ob die Ausgabe in etwa wie folgt aussieht: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... ]
Möglicherweise gibt es Unterschiede hinsichtlich der aktuellen Verzeichnis- oder Versionsnummern. Diese Werte sind abhängig von der Visual C++-Version und allen installierten Updates. Wenn die oben genannte der angezeigten Ausgabe ähnelt, können Sie C- oder C++-Programme über die Befehlszeile erstellen.
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 beim Ausführen des
cl
-Befehls ausgegeben wird, verwenden Sie entweder keine Developer-Eingabeaufforderung, oder es ist ein Fehler bei der Installation von Visual C++ aufgetreten. Sie müssen das Problem beheben, bevor Sie fortfahren können.Wenn Sie die Verknüpfung für die Developer-Eingabeaufforderungen nicht finden, oder wenn Sie eine Fehlermeldung erhalten, wenn Sie
cl
eingeben, liegt ein Problem im Zusammenhang mit der Installation von Visual C++ vor. Versuchen Sie, die Visual C++-Komponente in Visual Studio erneut zu installieren, oder installieren Sie die Microsoft Visual C++-Buildtools noch mal. Fahren Sie nicht mit dem nächsten Abschnitt fort, bis dercl
-Befehl funktioniert. Weitere Informationen zur Installation und Problembehandlung von Visual C++ 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 Visual C++-Quelldatei und Kompilieren über die Befehlszeile
Geben Sie im Developer-Eingabeaufforderungsfenster
md c:\hello
ein, um ein Verzeichnis zu erstellen. Geben Sie anschließendcd c:\hello
ein, um zu diesem Verzeichnis zu wechseln. In diesem Verzeichnis werden die Quelldatei und das kompilierte Programm erstellt.Geben Sie im Eingabeaufforderungsfenster
notepad hello.cpp
ein.Klicken Sie auf Ja, wenn Sie von Editor aufgefordert werden, eine neue Datei zu erstellen. Durch diesen Schritt wird ein leeres Editor-Fenster geöffnet, in das Sie Ihren Code in einer Datei namens „hello.cpp“ eingeben können.
Geben Sie im Editor die folgenden Codezeilen ein:
#include <iostream> using namespace std; int main() { cout << "Hello, world, from Visual C++!" << endl; }
Dieser Code ist ein sehr einfaches Programm, das eine Zeile Text auf den Bildschirm schreibt und dann beendet wird. Um Fehler zu minimieren, kopieren Sie diesen Code, und fügen Sie ihn in Editor ein.
Speichern Sie Ihre Arbeit. Wählen Sie im Editor im Menü Datei den Befehl Speichernaus.
Herzlichen Glückwunsch, Sie haben die C++-Quelldatei „hello.cpp“ erstellt, die nun kompiliert werden kann.
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.cpp“ 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 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
Die Datumsangaben und andere Details werden sich auf Ihrem Computer von den hier gezeigten unterscheiden.
Hinweis
Wenn die Quellcodedatei
hello.cpp
nicht angezeigt wird, vergewissern Sie sich, dass das aktuelle Arbeitsverzeichnis in der Eingabeaufforderung das von Ihnen erstellte VerzeichnisC:\hello
ist. Stellen Sie außerdem sicher, dass dies das Verzeichnis ist, in dem Sie die Quelldatei gespeichert haben. Überprüfen Sie außerdem, ob Sie den Quellcode mit der Erweiterung.cpp
und nicht mit der Erweiterung.txt
gespeichert haben. Die Quelldatei wird im aktuellen Verzeichnis automatisch als.cpp
-Datei gespeichert, wenn Sie Editor mit Befehlnotepad hello.cpp
über die Eingabeaufforderung öffnen. Wenn Sie Editor auf andere Weise öffnen, ist das Verhalten anders: Standardmäßig fügt Editor beim Speichern eine.txt
-Erweiterung an neue Dateien an. Außerdem werden Dateien standardmäßig im Verzeichnis Dokumente gespeichert. Wählen Sie in Editor Datei>Speichern unter aus, um Ihre Datei mit der Erweiterung.cpp
zu speichern. Navigieren Sie im Dialogfeld Speichern unter in der Verzeichnisstruktur zum OrdnerC:\hello
. Verwenden Sie dann das Dropdownsteuerelement "Speichern unter Typ", um alle Dateien (*.*) auszuwählen. Geben Siehello.cpp
unter Dateiname ein, und wählen Sie Speichern aus, um die Datei zu speichern.Geben Sie in die Developer-Eingabeaufforderung
cl /EHsc hello.cpp
ein, um das Programm zu kompilieren.Der cl.exe-Compiler generiert eine OBJ-Datei, die den kompilierten Code enthält, und führt dann den Linker aus, um ein ausführbares Programm namens „hello.exe“ zu erstellen. Dieser Name wird in den Zeilen der Ausgabeinformationen angezeigt, die der Compiler anzeigt. Die Ausgabe des Compilers sollte etwa wie folgt aussehen:
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
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.
Hinweis
Ü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, um nach der Fehlernummer zu suchen und Informationen zu bestimmten Fehlern zu erhalten.
Geben Sie zum Ausführen des hello.exe-Programms an der Eingabeaufforderung
hello
ein.Das Programm zeigt folgenden Text an und wird anschließend beendet:
Hello, world, from Visual C++!
Herzlichen Glückwunsch, Sie haben mithilfe der Befehlszeilentools ein C++-Programm kompiliert und ausgeführt.
Nächste Schritte
Dieses „Hello World!“-Beispiel ist die einfachste Form eines C++-Programms. In realen Programmen sind in der Regel Headerdateien, weitere Quelldateien und Links zu Bibliotheken enthalten.
Sie können die Schritte in dieser exemplarischen Vorgehensweise verwenden, um Ihren eigenen C++-Code zu erstellen, anstatt den gezeigten Beispielcode einzugeben. Mit diesen Schritten können Sie auch viele C++-Codebeispielprogramme erstellen, die Sie auch an anderer Stelle finden. Sie können Ihren Quellcode verwenden und Ihre Apps in jedem beschreibbaren Verzeichnis erstellen. Standardmäßig erstellt die Visual Studio-IDE Projekte in Ihrem Benutzerordner in einem Unterordner "source\repos ". Ältere Versionen können Projekte in einen Ordner "Dokumente\Visual Studio-Version<>\Projekte" einfügen.
Wenn Sie ein Programm mit zusätzlichen Quellcodedateien kompilieren möchten, geben Sie alle in der Befehlszeile ein. Beispiel:
cl /EHsc file1.cpp file2.cpp file3.cpp
Die /EHsc
-Befehlszeilenoption weist den Compiler an, das C++-Standardausnahmebehandlungsverhalten zu aktivieren. Ohne diesen Vorgang können ausgelöste Ausnahmen zu nicht zerstörten Objekten und Ressourcenverlusten führen. Weitere Informationen finden Sie unter /EH (Ausnahmebehandlungsmodell).
Wenn Sie zusätzliche Quelldateien angeben, verwendet der Compiler die erste Eingabedatei zum Erstellen des Programmnamens. In diesem Fall wird ein Programm namens „file1.exe“ ausgegeben. Fügen Sie die Linkeroption /out hinzu, um den Namen in „program1.exe“ zu ändern.
cl /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe
Es empfiehlt sich, mithilfe der Warnstufenoptionen /W3 oder /W4 zu kompilieren, um automatisch weitere Programmierfehler zu erfassen:
cl /W4 /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe
Der Compiler „cl.exe“ bietet viele weitere Optionen. Sie können diese zum Erstellen, Optimieren, Debuggen und Analysieren Ihres Codes anwenden. 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, MSBuild und Projektdateien oder CMake zum Konfigurieren und Erstellen komplexerer Projekte in der Befehlszeile verwenden. Weitere Informationen zur Verwendung dieser Tools finden Sie unter NMAKE-Referenz, MSBuild und CMake-Projekte in Visual Studio.
Die C- und C++-Sprachen sind ähnlich, aber nicht identisch. Der MSVC-Compiler verwendet eine einfache Regel, um zu bestimmen, welche Sprache verwendet werden soll, wenn der Code kompiliert wird. Standardmäßig behandelt der MSVC-Compiler auf .c
endende Dateien wie C-Quellcode und auf .cpp
endende Dateien wie C++-Quellcode. Wenn Sie erzwingen möchten, dass vom Compiler alle Dateien unabhängig von der C++-Dateierweiterung behandelt werden, verwenden Sie die Compileroption /TP.
Der MSVC-Compiler enthält eine C-Laufzeitbibliothek (C Runtime Library, CRT), die mit kleinen Ausnahmen dem ISO C99-Standard entspricht. Portabler Code wird in der Regel wie erwartet kompiliert und ausgeführt. Bestimmte veraltete Bibliotheksfunktionen und mehrere POSIX-Funktionsnamen werden vom MSVC-Compiler 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
C++-Programmiersprachenreferenz
Projekte und Buildsysteme
MSVC-Compileroptionen