1.3 Die nötigen Werkzeuge für C
An dieser Stelle können Sie natürlich noch kein einziges Programm starten. Anders als manche Skriptsprachen (wie z. B. Ruby oder Python), sind C-Quellcodes nicht direkt ausführbar (dies gilt übrigens auch für Java). Um aus einem einfachen C-Quellcode eine ausführbare Datei zu erstellen, gibt es im Grunde zwei Wege – einen »ungemütlichen« und einen »gemütlichen«. Am Anfang der C-Programmierung und auf den ersten Linux-Systemen gab es nur den unbequemen Weg. Der unbequeme Weg (wobei dies auch Ansichtssache ist) besteht aus den folgenden Schritten:
-
Sie können den Quellcode in einen beliebigen ASCII-Texteditor eintippen und abspeichern.
-
Sie können den Quellcode mit einem Compiler übersetzen, wodurch eine Objektdatei (*.obj oder *.o) erzeugt wird.
-
Sie können die Objektdatei mit einem Linker binden, was eine ausführbare Datei erzeugt. Der Linker sucht dabei alle benötigten Funktionen aus den Standardbibliotheken heraus und fügt sie anschließend dem fertigen Programm hinzu.
Für diesen manuellen Weg brauchen Sie also nur einen einfachen ASCII-Texteditor, einen Compiler und einen Linker. All diese Dinge sind frei im Internet verfügbar, Sie haben also keinerlei Kosten, wenn Sie die manuelle Methode wählen. Den Compiler und den Linker müssen Sie dann später aus der Kommandozeile heraus aufrufen. In der Praxis wird allerdings eher selten zwischen Compiler und Linker unterschieden, und wenn die Rede von einem Compiler ist, ist damit meistens gleichzeitig auch der Linker als komplette Einheit gemeint. Abbildung 1.1 zeigt diesen Übersetzungsvorgang in vereinfachter Form.
Der bequemere Weg führt über eine All-in-one-Lösung, eine Entwicklungsumgebung. Wie der Name schon vermuten lässt, finden Sie hier alles, was Sie zum Programmieren benötigen, in einem Fenster. Das populärste Beispiel für eine Entwicklungsumgebung ist sicherlich Microsoft Visual Studio oder auch das frei verfügbare Pelles C.
Eine Entwicklungsumgebung bietet natürlich meistens weitaus mehr als nur Texteditor, Compiler und Linker. Häufig finden Sie hier auch einen Debugger. Ein Debugger ist ein Tool zum schrittweisen Durchlaufen eines C-Programms, wodurch Sie sehr gut Fehler finden können. Fehler werden oft als Bugs (Wanzen) bezeichnet, ein Debugger ist also quasi ein »Entwanzer«. Oft gibt es auch eine Projektverwaltung, um die Übersicht über noch zu erledigende Aufgaben zu behalten, oder einen Profiler, um die Laufzeit des Programms zu analysieren und zu optimieren. Vor allem, wenn Sie Spiele oder 3D-Anwendungen programmieren, kommen Sie quasi nicht ohne Profiler aus.
Ich empfehle Ihnen, sich stets einen aktuellen Compiler zu besorgen und zu verwenden. Wenn es Ihnen darauf ankommt, dass er zumindest mit dem C11-Standard etwas anfangen kann, bieten sich die folgenden Compiler an:
-
GCC aus GNU GCC
Der C-Compiler GCC aus der GNU Compiler Collection (kurz: GCC) wird auf vielen Plattformen verwendet und ist sehr beliebt, um neue Funktionen auszuprobieren. Unter Linux ist er für gewöhnlich die erste Wahl. Unter Windows steht die Portierung MinGW (Minimal GNU for Windows) zur Verfügung. Allerdings ist MinGW besonders unter Windows 10 nicht einfach zu installieren. -
Clang der LLVM
Clang aus dem LLVM-Projekt ist der C-Standard-Compiler für die macOS-Entwicklung schlechthin, mit einer sehr guten Unterstützung für C11 und C18. Aber auch für Linux können Sie diesen Compiler kostenlos nachinstallieren. -
Pelles C
Diese schlanke Entwicklungsumgebung für Microsoft Windows verwendet eine modifizierte und erweiterte Version des LCC-Compilers mit Unterstützung für C11 und C18 und dürfte somit die erste Wahl für die reine Programmierung in C unter Windows sein. -
Microsoft Visual Studio
Diese Entwicklungsumgebung ist der Standard schlechthin für Windows-Anwendungen. Mittlerweile können Sie sogar Apps für macOS oder Smartphones erstellen. Visual Studio eignet sich nur bedingt für dieses Buch, weil es für die einfachen Beispiele schlicht »überkandidelt« ist und darüber hinaus vierstellige Beträge kostet. Sie können dieses Buch jedoch zusätzlich dazu benutzen, um in Visual Studio einzusteigen.