Combobreaker.de

Visual C++ in der Eingabeaufforderung kompilieren

Manchmal möchte man einfach Code schreiben, ohne dafür extra ein Projekt in Visual Studio anzulegen. Oder man möchte Code mit Visual C++ kompilieren, ohne dafür Visual Studio zu verwenden.

Dafür gibt es den command-line C++-Compiler. Der lässt sich relativ einfach über die Eingabekonsole verwenden. Das ist praktisch zum Testen. Aber auch um besser zu verstehen wie der Compiler arbeitet, ist das Ganze einen Blick wert.

Damit wir Code kompilieren können, müssen wir aber zuerst Visual Studio installieren. Visual Studio 2015 und 2017 kommen mit entsprechenden Tools. Ob das mit älteren Versionen genauso funktioniert, kann ich jetzt nicht mit Sicherheit sagen. Daher setze ich mal VS2015 (Community Edition) voraus.

Leider funktioniert das nicht in der normalen Eingabeaufforderung. Das liegt daran, dass die Eingabeaufforderung wissen muss, mit welchem Befehl welches Programm wie ausgeführt werden soll. Das ist in Windows leider etwas umständlicher als in anderen Betriebssystemen. Aber damit man hier nichts mehr konfigurieren muss, kommt Visual Studio eben mit vorkonfigurierten Eingabekonsolen.

Im Startmenü findest du einen Ordner Namens “Visual Studio 2015” bzw. 2017.

Screen 1

Wie man auf dem formschönen Bild sieht, gibt es hier zahlreiche Programme. Es kann sein, dass es bei dir weniger sind. Die Developer-Eingabeaufforderung für VS2015 ist aber das Minimum, das wir benötigen. Solltet ihr die anderen Eingabeaufforderung auch installiert haben, dann verwendet die native Tools-Eingabeaufforderung für x86 bzw. x64.
Für diese Anleitung verwende ich aber die Developer-Eingabeaufforderung.

Startest du das Programm solltest du eine normale Eingabeaufforderung sehen. Um sicherzugehen, dass alles richtig funktioniert tippe einfach den Befehl “cl” ein. Das sollte dann so aussehen:

Screen 2

Sollte stattdessen eine Fehlermeldung erscheinen, hast du entweder die falsche Eingabeaufforderung gestartet, oder die Entwickler-Tools nicht mit installiert. Abhilfe schafft hier in der Regel das Installationsprogramm von Visual Studio (eine Neuinstallation ist da nicht unbedingt notwendig.). Einfach mal schauen, dass man da die entsprechenden Tools nachinstalliert.

Nun brauchen wir natürlich Code, den wir kompilieren können. Dafür kannst du entweder “notepad test.cpp” eingeben. Das startet Notepad und erstellt eine neue Datei. Ansonsten kannst du aber auch wie gewohnt eine Datei erstellen.
Zum Testen empfehle ich die Datei nicht zu weit zu vergraben, damit wir dort möglichst schnell und einfach über die Konsole hin navigieren können.

In unsere *.cpp-Datei packen wir nun unseren Code. Ganz simpel:

#include <iostream>

using namespace std;

int main(void)
{
    cout << "Hallo!" << endl;

    return 0;
}

Falls du die command-line Befehle nicht kennst, hier eine sehr kleine Übersicht, über die Befehle die du ggf. brauchen könntest:

cd .. – in den übergeordneten Ordner navigieren
dir – alle Unterordner im aktuellen Ordner auflisten
cd ORDNER – in entsprechenden ORDNER wechseln
cls – Eingabeaufforderung leeren
Pfeiltasten – mit den Pfeiltasten nach oben und unten kannst du durch die vorherigen Eingaben wechseln, musst also nicht jedes Mal alles manuell eintippen

Der Einfachheit halber habe ich den Ordner direkt unter C:\ angelegt. Würde ich jetzt nicht generell empfehlen, zum Testen ist das aber in Ordnung, denke ich.

Jetzt musst du in der Eingabeaufforderung einfach in das entsprechende Verzeichnis wechseln, in dem die *.cpp-Datei liegt. Und hier kompilieren wir den Spaß dann mit folgendem Befehl:

cl /EHsc test.cpp

Screen 3

Kurz zur Erläuterung: Der Befehl “cl” ruft die “cl.exe” auf. Das ist der Visual Studio Compiler. Danach folgen die Parameter, die beim Kompilieren beachtet werden soll. “/EHsc” gibt an, welche Art von Ausnahmebehandlung verwendet werden soll. EH steht für “execption handling”. Die kleinen Buchstaben dahinter (sc) sind Argumente für diese Option. Mehr dazu kannst du hier nachlesen: https://msdn.microsoft.com/de-de/library/1deeycx5.aspx

Du kannst das Programm auch ohne diesen Parameter kompilieren. Das funktioniert in diesem Fall, aber du erhältst dann auch direkt den freundlichen Hinweis auf die /EHsc-Option.

Screen 4

Und hinter dieser Option steht eben der Dateiname der Datei, die kompiliert werden soll. Das darf auch mehr als eine Datei sein.

Wenn das erfolgreich abgeschlossen wurde, findest du zwei neue Dateien in dem Ordner. Einmal die test.obj und die test.exe. Jetzt einfach den Namen der *.exe eingeben und schauen, was passiert:

Screen 5