C-Tutorial (C oder C++, Vorwort, Installation, Kapitel 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)

Installation

Grundlagen

Ziel dieses Kapitels ist es, dass Sie Ihr erstes Programm schreiben und erfolgreich laufen lassen. Wir werden uns Schritt für Schritt diesem Ziel nähern. Innerhalb der nächsten Stunde sollte Ihr erstes Programm laufen. Lassen Sie sich nicht entmutigen, sollte dabei etwas nicht auf Anhieb funktionieren. Es ist für einen Programmierer essentiell, sich nicht bei jedem Problem hilfesuchend an jemanden anderen zu wenden, sondern es selbst in den Griff zu bekommen. Wenn gar nichts hilft, wenden Sie sich bitte ans Forum.

Zunächst benötigen wir die geeignete Software, um ein Programm schreiben zu können. Dem Computer sagen wir in Form von Anweisungen, was dieser zu tun hat. Diese Anweisungen (die einzelnen Programmierzeilen) werden in Textform verfasst. Was ein Programm macht, beschreibt somit ein normaler Text.

Der Text (Quellcode, Quelltext, source code) kann mit einem normalen Texteditor verfasst und als Textdatei (ASCII) abgespeichert werden. Wichtig ist, dass der Texteditor keine Steuerzeichen oder Formatieranweisungen einfügt. Word und OpenOffice scheiden aus diesem Grund aus. Als Editor können Sie zum Beispiel den (einen) dem Betriebssystem mitgelieferten Texteditor verwenden. Unter Windows ist das Notepad, das sich über i.d.R. über Start->Programme->Zubehör->Editor starten lässt. Linux-User können vi, vim und ähnliche Editoren verwenden.

Nachdem der Quellcode als Textdatei mit der Endung .c abgespeichert wurde, wird ein weiteres Programm benötigt: der Compiler (genauer: ein Compiler und ein Linker). Der Compiler übersetzt den Text in eine für den Computer verständliche Form. Die Datei, die vom Compiler erstellt wird, bezeichnet man als Objektdatei (oftmals mit der Dateiendung .obj oder .o).

Die Objektdatei kann allerdings nicht vom Betriebssystem ausgeführt werden. Darum kommt hier der Linker zum Einsatz, der aus der Objektdatei eine ausführbare Datei erstellt (.exe unter Windows, Binärdateien unter Linux). Normalerweise liefert jeder Compiler auch einen Linker mit. Wenn ich von Compilieren spreche ("Lassen Sie das Beispiel compilieren und führen Sie es aus."), meine ich compilieren und linken (und anschließend starten).

In den allermeisten Fällen wird nach dem Compilieren automatisch der Linker aufgerufen, weswegen uns der Linker nicht weiter beschäftigen soll. Die ausführbare Datei brauchen Sie dann nur noch starten. Das geschieht in vielen Entwicklungsumgebungen aber oft auch automatisch.

Im nächsten Abschnitt beschreibe ich die Installation von Code::Blocks unter Windows. Bei Code::Blocks handelt es sich um keinen Compiler, sondern um eine (integrierte) Entwicklungsumgebung (auch als IDE, Integrated Development Environment, bezeichnet). Sinn hinter Entwicklungsumgebungen ist, einem Programmierer alle Werkzeuge zur Verfügung zu stellen, die er zum Arbeiten benötigt. Dazu gehören üblicherweise Editor, Compiler (oder Interpreter), Linker, Debugger, eine Quelltextformatierungsfunktion (z.B. Syntax Highlighting; dabei werden bestimmte Begriffe farblich hervorgehoben; Quellcodes in diesem Tutorial werden ähnlich formatiert angezeigt!) und einige andere.

Mein Hintergrund im Rahmen dieses Tutorials ist, Windows-Nutzern die Kommandozeile zu ersparen. Da die Programme sehr einfach bleiben, täte es nämlich ein Texteditor auch. Linux-Usern, die oft eine größere Vorliebe für Shells haben (oder weniger Abneigung?), zeige ich den Aufruf von GCC (= GNU Compiler Collection, früher: GNU C Compiler) direkt.

Übrigens: Sie können auch jeden anderen C-Compiler verwenden, der zumindest den C90-Standard unterstützt. Zum Beispiel Borland C++ Builder, Microsoft Visual Studio und einige andere.

Installation der Entwicklungsumgebung Code::Blocks unter Windows

Code::Blocks können Sie von http://www.codeblocks.org/downloads herunterladen. Klicken Sie danach auf Download the binary release und laden Sie aus der Kategorie Windows 2000/XP/Vista die Datei codeblocks-8.02mingw-setup.exe herunter.

Achten Sie darauf, dass Sie die richtige Datei wählen. Nur codeblocks-8.02mingw-setup.exe enthält auch einen C-Compiler! Wenn Sie das falsche File wählen, wird zwar die Entwicklungsumgebung installiert, den zugrunde liegenden Compiler müssten Sie aber extra installieren (Code::Blocks unterstützt dabei mehrere!).

Wählen Sie entsprechend die aktuellste Version. 8.02 war aktuell, wie ich diesen Text geschrieben habe. Es ist egal, ob sie Sourceforge oder BerliOS wählen. Mit mehreren Mirror-Servern wird hier versucht, sicherzustellen, dass immer ein Server verfügbar ist.

Das Setup brauchen Sie dann nur aufzurufen und wie jedes andere Programm zu installieren. Achten Sie lediglich darauf, dass Sie MinGW Compiler Suite mitinstallieren (ist standardmäßig vorselektiert). Starten Sie danach Code::Blocks, das Setup fragt Sie auch danach ("Do you want to run Code::Blocks now?").

Code::Blocks fragt Sie, welchen Compiler Sie verwenden (wollen). Da Sie GCC mit dem Setup mitinstalliert haben, wird dieser auch bereits erkannt (Status Detected). Wählen Sie GNU GCC Compiler aus und klicken Sie auf Set as default und anschließend auf OK.

Code::Blocks zeigt Ihnen Tipps beim Start an (egal) und fragt Sie, ob Sie bestimmte Dateiendungen mit Code::Blocks verknüpfen wollen (am wichtigsten ist hier .c für C-Quellcodedateien). Hier können Sie Yes, associate Code::Blocks with C/C++ file types wählen.

Nun kann's losgehen. Um eine neue Quellcodedatei zu erstellen, klicken Sie auf File->New->File... . Wählen Sie anschließend C/C++ source und klicken Sie auf OK. Anmerkung am Rande: Die Projektverwaltung, die Code::Blocks bietet, behandle ich in diesem Tutorial nicht, diese ist für den Anfang auch nicht nötig.

Es startet der C/C++ source file wizard (Assistent). Klicken Sie auf Next, wählen Sie C und wieder Next. Danach können Sie gleich angeben, wo die Datei gespeichert werden soll. Wählen Sie einen Dateinamen, die Endung .c ergänzt Code::Blocks automatisch. Nur noch ein Klick auf Finish und Code::Blocks ist für unsere Zwecke fertig eingerichtet und bereit.

Tippen Sie das folgende Programm ab. Bitte wirklich abtippen und nicht kopieren. Abtippen erhöht den Lerneffekt!

#include <stdio.h>
 
int main()
{
  printf ("hello, world!");
  return 0;
}

Es ist in Programmierbüchern und -Tutorials üblich, mit diesem sog. Hello-World-Programm zu beginnen. Die Tradition geht auf das schon im letzten Kapitel erwähnte Buch The C Programming Language von Kernighan und Ritchie zurück. Mit dem Hello-World-Programm werden oft verschiedene Programmiersprachen miteinander verglichen. Dieses liefert einen ersten Eindruck über die Syntax einer Sprache. Es zeigt auch, wieviel Code nötig ist, um einen Text (hier: das berühmte hello, world!) auf dem Bildschirm anzuzeigen. Wenn Sie das Programm richtig (!) abgetippt haben, dann klicken Sie im Menü auf Build und nochmal auf Build. Ein häufiger Fehler ist etwa das Vergessen der Semikola (Strichpunkte) am Ende mancher Zeilen. Wenn alles richtig gemacht wurde, sieht das in etwa aus wie im folgenden Screenshot:

Code::Blocks - Screenshot

Falls der Compiler Fehler festgestellt hat, werden diese im unteren Fenster (Logs & others im Reiter Build log) angezeigt. Neben einer Fehlermeldung gibt es immer auch einen Hinweis auf die Programmierzeile, in der der Fehler steckt. Die Zeilennummer muss aber nicht immer die falsche Programmierzeile bezeichnen. Der Fehler kann auch darüber (einige Zeilen weiter oben) oder darunter gemacht worden sein.

Wenn 0 errors steht (0 warnings sollten es auch sein; Warnungen deuten oft auf etwas hin, was nicht optimal gelöst wurde), passt alles, und das Programm (die .exe-Datei) kann gestartet werden. Entweder Sie starten Sie selbst aus dem Verzeichnis heraus, oder - einfacher -, Sie starten das Programm gleich über das Code::Blocks-Menü über Build und Run.

'hello, world!' in Code::Blocks

Wenn bis jetzt alles geklappt hat, können Sie mit dem nächsten Kapitel fortfahren.

C-Quellcode mit GCC compilieren (Linux)

Linux-User haben die Wahl: Sie können, so wie oben beschrieben, Code::Blocks verwenden. Die Installation wird im Code::Blocks-Wiki beschrieben. Oder Sie gehen den hier vorgestellten Weg, indem Sie Quellcodes mit vim schreiben und anschließend auf der Shell bzw. in einem Konsolen-Fenster direkt von gcc compilieren lassen.

Aber der Reihe nach. Installieren Sie, wenn nötig, GCC. In den meisten Distributionen wird GCC vorinstalliert. Sollte das nicht der Fall sein, müssen Sie diesen nun nachinstallieren. Das geschieht je nach Distribution über ein .rpm-, .deb-Paket, .tar.gz / tar.bz2-Archiv oder im einfachsten Fall, bei Debian/Ubuntu über APT:

sudo apt-get install gcc

Alle weiteren Pakete sollten dann automatisch gewählt werden. Wenn alle Pakete installiert wurden, ist die weitere Vorgehensweise sehr einfach. Starten Sie den Editor Ihrer Wahl und tippen Sie das obere Hello-World-Programm ab. In meinem Fall ist das vim:

vim helloworld.c     # der Dateiname ist natürlich frei wählbar

Wenn Sie die Datei gespeichert haben, können Sie gcc sogar mit nur einem Parameter aufrufen:

gcc helloworld.c

Das war's! GCC erstellt daraufhin eine a.out-Datei. Das ist die compilierte Binärdatei des Programms. Diese starten Sie aus dem aktuellen Verzeichnis mit:

./a.out

GCC besitzt natürlich als typisches UNIX/Linux-Programm unzählige Parameter. Wir verschönern die Sache etwas, indem wir den Namen der Output-Datei mit dem Parameter -o bestimmen:

gcc -o helloworld helloworld.c

Das Output-File heißt nun wie gewünscht helloworld und kann mit

./helloworld

aus dem aktuellen Verzeichnis gestartet werden.

Wenn alles geklappt hat, keine Fehler gemeldet wurden und Ihr Programm läuft, sind Sie fertig. Wenn Ihnen diese Variante zu wenig komfortabel erscheint, können Sie selbstverständlich auch zu einer Entwicklungsumgebung greifen (was auf Dauer sicher unumgänglich ist). Zum Testen der kleinen Quellcode-Beispiele müsste es aber ausreichen. Wenn Sie einfach einfach nur einen besseren Editor suchen, kann ich Quanta Plus empfehlen, der für Programmierer gedacht ist und einige hilfreiche Features bietet.

Konventionen im Tutorial

Eine kurze Erklärung der im Tutorial verwendeten Konventionen:

So gekennzeichnete Beispiele können Sie nicht direkt vom Compiler ausführen lassen,
da so nur eine einzelne Programmierzeile, ein Programmausschnitt oder 
die Syntax (Grammatik) eines Befehls/einer Anweisung/... dargestellt wird.
Diese Programmzeile(n) können Sie bei Bedarf in ein Programm einbauen.

Ebenfalls so gekennzeichnet werden Beispiele, in denen etwas einzugeben ist 
(z.B. in der Shell), wie z.B. oben bei der Installation unter Linux (selten).

So werden ganze Quellcode-Beispiele (Programme) gekennzeichnet. Sie können diese 1:1 übernehmen (besser: selber tippen!) und vom Compiler ausführen lassen. Damit Sie die Materie leichter verstehen und sich diese besser merken können, sollten Sie diese Beispiele auf alle Fälle ausprobieren!

Wichtige Fachbegriffe und Befehle werden - zumindest - beim ersten Vorkommen fett gedruckt dargestellt. Besonders wichtige Informationen können auch fett gedruckt besonders hervorgehoben werden.

Kursiv werden Variablen-Namen, Eigennamen, Verzeichnisse, aber auch Abkürzungen und verschiedene Namen/Texte/Zitate (Klicken Sie auf ...) gekennzeichnet.

Vorheriges Kapitel Nächstes Kapitel