C++: Die Basics - eps1.1_GettingStarted
Hallo und herzlich willkommen zur ersten Episode der ersten Staffel der Beitragsserie zu C++. In dieser Staffel schaffen wir uns die Basics der Programmiersprache drauf und lernen den Aufbau eines C++-Programms kennen. Also halt dich fest, denn …
… jetzt legen wir los
Üblicherweise beginnen Software-Dokumentationen, ReadMes, Lehrbücher oder Kurse mit einem Getting Started. Dieser Abschnitt soll den Einstieg in die fremde Software, das Framework oder die Bibliothek erleichtern und einem Neuling den geeigneten Startpunkt zeigen. Da ich das genauso handhaben möchte, fangen wir vorbildlich mit einem Getting Started an.
Die Schritte bis zur ausführbaren Datei
Wenn es um Quellcode geht, wird nicht grundlos die Analogie zu Sprachen gewählt. Programmiersprachen dienen zur Kommunikation zwischen Menschen und Maschine. Sie haben ebenso wie gesprochene Sprachen eine Syntax, Vokabeln und Strukturen, die beherrscht werden müssen. Doch bevor wir uns auf die Sprache und ihre Grammatik stürzen,
- Oh man, das klingt ja nach Deutschunterricht… -
möchte ich dir das große Ziel dahinter ins Bewusstsein rufen. Eigentlich wollen wir am Schluss nur eine ausführbare Datei, ein Executable, haben, das unsere gewünschte Aufgabe erledigt. Dahin gelangen wir in drei einfachen Schritten:
- Schreibe C++-Code mit einem Texteditor
- Kompiliere den Code mit einem C++-Compiler
- Verknüpfe alle Ausgaben des Compilers mit einem Linker, um so schließlich die ausführbare Datei zu erhalten
Nachdem du deinen Code in C++ geschrieben hast, wird er typischerweise als Textdatei mit der Extension .cpp am Ende gespeichert.
Im Schritt der Kompilierung wird dein Code in Maschinencode umgewandelt. Dieser besteht aus einer langen Zahlenkette von Nullen und Einsen. Der Prozessor versteht nur solche Zeichenketten und weiß damit, welche Aufgaben ausgeführt werden sollen.
Größere Programme bestehen aus mehreren Dateien, die der Compiler eine nach der anderen konvertiert und aus jeder eine Objektdatei erstellt. Diese erkennst du an der Extension .o oder .obj. Während der Kompilierung werden zwar alle benötigten Objektdateien generiert, doch ignoriert der Compiler die Abhängigkeiten der .cpp Dateien untereinander.
Aus diesem Grund kommt im letzten Schritt der Linker zum Einsatz. Er stellt die Verbindungen zwischen den Dateien her und löst die Abhängigkeiten auf. Nach erfolgreichem Linken wird eine ausführbare Datei erstellt, die du anschließend ausführen und verteilen kannst. Dieser gesamte Prozess wird Build-Prozess genannt.
Am Anfang war das „Hello World!“
Jetzt, da du alle Tools und Schritte kennst, ist es an der Zeit für deine erste Anwendung. Es ist schon fast eine Art Tradition, dass als Erstes ein „Hallo Welt!“-Programm geschrieben wird. Dieses kleine Progrämmchen zeigt alle nötigen Bestandteile eines vollständigen Codes und gibt dir somit einen ersten Einblick in die Syntax.
Die Aufgabe des Programms ist ziemlich simpel. Es soll einfach nur den Text „Hello World!“ ausgeben. Ich weiß, das ist kein sehr einfallsreiches Beispiel und es wird von fast allen Lehrbüchern oder Einsteigerkursen verwendet. Aber ich halte gerne an Traditionen fest.
Coding
Öffne einfach irgendeinen Texteditor deiner Wahl und gebe das Codebeispiele aus Abbildung 2 ein. Anschließend speicherst du die Datei z. B. unter dem Namen hello.cpp. Wichtig ist dabei die Extension .cpp. Wie du die Datei benennen möchtest, ist dir frei überlassen.
// listing1: hello world
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
Da ich meine Reise mit dem Vorsatz - Ziele, Ziele! Gute Vorsätze lässt man spätestens Ende Februar wieder sein - nur Opensource-Software zu verwenden, gestartet habe, arbeite ich auf einem Linux-Betriebssystem.
Um die hello.cpp Datei zu erstellen, rufe ich dort einfach mit der Tastenkombination STRG + Alt + T das Command Line Terminal auf. Mit dem Befehl nano hello.cpp öffnet sich im Terminal der nano Texteditor mit der neuen Datei hello.cpp. Dort tippe ich den Quellcode unseres „Hello World“-Programms ein und speichere die Datei mit der Tastenkombination STRG + X.
Building and Execution
Jetzt sind wir gar nicht mehr so weit von unserer ersten ausführbaren Datei entfernt. Der erste Schritt, das Codeschreiben, ist geschafft und nun müssen wir unsere C++-Datei kompilieren. Dazu verwende ich den freien GNU C-/C++-Compiler, den die meisten Betriebssysteme mitbringen (zum schnellen Ausprobieren geht auch ein Online Compiler). Den Build-Prozess starten geht ganz einfach. Ich muss im Terminal nur den Befehl
// listing2: compile
$ g++ -o hello hello.cpp
eingeben. Schon entsteht unser Executable hello. Anschließend gebe ich den Befehl
// listing3: run
$ ./hello
Listing 2
ein und siehe da: Das Programm gibt auf dem Terminal “Hello World!” aus.
Da unser Codebeispiel aus Listing 1 standardkonform ist, kann es mit jedem beliebigen C++-Compiler für jedes Betriebssystem kompiliert werden. So kannst du auch das Beispiel unverändert mit Hilfe der entsprechenden Tools auf deinem Windows-PC erstellen und ausführen.
Gratulation!
Wir haben gerade unser erstes kleines C++-Programm geschrieben und es funktioniert. Damit haben wir die wichtigste Etappe geschafft: Anfangen!
Sicherlich hast du einige Fragen zu einzelnen Schritten und bist dir noch nicht sicher, was jedes Detail bedeutet. Das kann ich gut nachvollziehen, denn ich habe mit Absicht nicht alles angesprochen. Du sollst hier nur einen Überblick über den gesamten Erstellungsprozess bekommen und nicht in Einzelheiten verloren gehen.
In kommenden Blogeinträgen werden wir uns immer tiefer mit der Programmiersprache C++ beschäftigen. Dabei werden wir nach und nach mehr über den Build-Prozess von Software lernen.
Ich wünsche dir maximalen Erfolg!