Hinweise zur Einrichtung von Code::Blocks

Make als alternative zur IDE

Wenn Sie im Verzeichnis z.B. beispiele/kap1
make
angeben, werden die dort vorhandenen Dateien übersetzt. Dabei werden abgesehen von Warn- und Fehlermeldungen die Befehle an den Compiler und den Linker angezeigt. Es geht darum, dass eine integrierte Entwicklungsumgebung (IDE) genau diese Befehle auch absetzt! Man kann das Build log der IDE mit der Ausgabe von make vergleichen, um Fehlern in der IDE-Einstellung auf die Schliche zu kommen.

Einstellungen für Code::Blocks

Die benötigten Einstellungen gelten für Code::Blocks 16.01 und setzen voraus, dass der unter  Downloads  für Windows angebotene MinGW-Compiler installiert wurde. Sinngemäß gelten die Hinweise auch für zukünftige Versionen und andere Entwicklungsumgebungen. Seien Sie bei der Eingabe sehr sorgfältig! Schon kleine Tippfehler führen dazu, dass Code::Blocks nicht wie beabsichtigt funktioniert.

Falls Code::Blocks den Compiler beim ersten Start nicht gefunden hat, in der Menüleiste "Settings" klicken und "Compiler" wählen. Dann "Toolchain executables" wählen und oben bei "Compiler's installation directory" C:\MinGW eingeben, wenn es dort nicht schon eingetragen ist. Ändern Sie die Namen der Programme, indem Sie überall "mingw32-" streichen. So wird aus "mingw32-gcc.exe" dann "gcc.exe" usw. Das folgende Bild zeigt das Ergebnis.

toolchain

Compiler-Flags einstellen

In der Menüleiste "Settings" klicken und "Compiler" wählen. Unter dem oberen Reiter "Compiler settings" gibt es ein wenig darunter den Reiter "Compiler Flags". Dann anklicken:

Produce debugging symbols [-g]
Enable all common compiler warnings [-Wall]
Enable warnings demanded by strict ISO C and ISO C++ [-pedantic]
Stop compiling after first error [-Wfatal-errors]
(-Wfatal-errors vermeidet seitenlange Fehlermeldungen, die es sonst manchmal geben könnte.)
Mit "Ok" bestätigen.

flags
 einstellen

Der zum Download angebotene g++-Compiler Version hat als Voreinstellung automatisch C++14. Für C++17 kann, wenn gewünscht, unter "Other compiler options" noch -std=c++17 angegeben werden. Für dieses Buch reicht C++14.

Umgebungsvariable hinzufügen

Diese Variable wird für die Einbindung der SFML-Bibliothek benötigt. Der Vorteil: Wenn mal andere Verzeichnisse verwendet werden, ist nur an dieser Stelle eine Änderung erforderlich. Für die Umgebungsvariablen den Reiter "Custom variables", dort "Add" anklicken und eintragen, siehe Abbildung:

Umgebungsvariable einstellen

Include-Verzeichnis einstellen

Tragen Sie unter "Settings", "Compiler", "Search directories", "Compiler", mit "Add" das Include-Verzeichnis ein (siehe Bild). Dieses Verzeichnis wird für die grafischen Beispiele benötigt. Dann "OK" klicken.

lib
 dirs einstellen

Library-Verzeichnisse einstellen

Tragen Sie unter "Settings", "Compiler", "Search directories", "Linker", mit "Add" die Verzeichnisse ein (siehe Bild). Das SFML-Verzeichnis wird für die grafischen Beispiele benötigt. Dann "OK" klicken.

lib
 dirs einstellen

Bibliotheken bekannt machen

Das kann global geschehen oder speziell für das jeweilige Projekt. Die projektbezogene Einstellung wird über "Project" und "Build options" erreicht. Der Einfachheit halber wird hier die globale Einstellung gewählt. Die einzutragenden Bibliotheken sind nur für die grafischen Beispielenotwendig. Bitte die Reihenfolge beim Eintragen beachten!

libs einstellen

Wenn Sie nicht sicher sind, welche Bibliotheken benötigt werden - sehen Sie im makefile nach! Wenn Sie dort z.B. -lsfml-graphics lesen, muss sfml-graphics eingetragen werden. D.h. Sie lassen -l weg.

Einbindung prüfen

Wenn Sie nun eine Datei übersetzen, müsste danach am Anfang im "Build log" (Button unten direkt links neben Build messages) etwa Folgendes bei einem Programm mit Grafik und Audio stehen (Achtung: Die Verzeichnisnamen sind höchstwahrscheinlich nicht dieselben wie Ihre!):

g++.exe -Wall -fexceptions -g -IC:/MinGW/SFML\include -c C:\Users\IhrName\Documents\codeblocks_spiel\main.cpp -o obj\Debug\main.o
g++.exe -Wall -fexceptions -g -IC:/MinGW/SFML\include -c C:\Users\IhrName\Documents\codeblocks_spiel\Spiel.cpp -o obj\Debug\Spiel.o
g++.exe -LC:\MinGW\lib -LC:/MinGW/SFML\lib -o bin\Debug\codeblocks_spiel.exe obj\Debug\main.o obj\Debug\Spiel.o -lsfml-graphics -lsfml-window -lsfml-audio -lsfml-system
Output file is bin\Debug\codeblocks_spiel.exe with size 1.22 MB
Process terminated with status 0 (0 minute(s), 3 second(s))

Wenn main() Argumente erwartet, müssen Sie vor dem Starten eingetragen werden.

Wo werden die Code::Blocks-Einstellungen gespeichert?

Alle Ihre Einstellungen werden im Verzeichnis C:\Users\IhrName\AppData\Roaming\CodeBlocks gesichert. Wenn es Probleme gibt, etwa weil dort noch eine Konfiguration für eine vorherige Code::Blocks-Konfiguration steht, löschen Sie das Verzeichnis und geben Sie die Einstellungen neu ein. Das empfiehlt sich auch bei fehlerhaften und nachträglich korrigierten Angaben, wenn sich ein Fehler hartnäckig hält.