In den Rechnerräumen ist Code::Blocks installiert, das wir in der Übung auch verwenden.
Bisher kam mit Code::Blocks für Windows immer ein 32-bit-Compiler mit. Dieser funktioniert auch in 64 bit Windows und reicht für unsere normalen C- und C++-Programme. Für unsere Assembler-Programmierung, für die Einbindung von 64-bit-Libraries usw. braucht man aber die Installation eines 64-bit-Compilers in CodeBlocks für Windows.
Von der neuesten Code::Blocks-Version gibt es auch einen Download, der gleich einen 64-bit-Compiler mitinstalliert (d.h. wer sich Code::Blocks privat frisch installiert, hat wahrscheinlich einen 64-bit-Compiler). In den Rechnerräumen der DHGE ist aber oft noch die alte Version mit 32-bit-Compiler installiert.
Code::Blocks gibt es auch für Linux und Mac.
Die von Studenten am meisten verwendeten Entwicklungsumgebungen sind CLion und Visual Studio Code. Beide gibt es für Windows, Linux und Mac.
Den von mir unter Linux verwendeten Editor Geany gibt es auch für Windows. Man muss allerdings den MinGW/gcc-Compiler getrennt herunterladen und installieren (siehe hier).
CodeLite ist so ähnlich wie Code::Blocks und für Windows, Linux und Mac verfügbar.
Daneben gibt es für Windows natürlich das Microsoft Visual Studio Community, den kleinen, kostenlosen Bruder von Microsoft Visual Studio.
Es gibt folgende unter Windows bzw. DOS lauffähige Portierungen des Linux gcc:
Daneben gibt es folgende kostenlose C-Compiler für Windows, die nicht vom gcc abstammen:
Weil alle Editoren bezüglich automatischer Einrückung Schwächen haben, trägt es zur Übersichtlichkeit bei, das Programm hin und wieder mit einem Formatierprogramm formatieren: astyle (am besten!), bcpp, indent (nur C), uncrustify, ...
astyle ist in Code::Blocks integriert und über einen Menüpunkt aufrufbar!
Ich empfehle UniversalIndentGUI, das einige dieser Programme unter einer netten grafischen Oberfläche verpackt! UniversalIndentGUI gibt es auch für Windows; das Windows-Setup bringt u.a. astyle und uncrustify fertig mit!
Kurze Einführung für die, die einen gcc direkt auf der Befehlszeile aufrufen und für die, die in Dev-C++, Code::Blocks oder was immer möglichst viele Warnings beim Compilieren einschalten möchten, um Fehler zu finden:
-o filename | Angabe des Filenamens des Outputfiles (ausführbaren Programmes). |
-g | Erzeugen eines Programmes
mit Zusatz-Information für Debugger (Zeilennummern, Variablennamen und -typen, ...). |
-std=c11 -pedantic | Test auf strikte Einhaltung des ANSI-C11-Standards (oder -std=c++11 für C++) |
-W -Wall | Ausgabe
zusätzlicher Warnings für zulässige, aber dubiose Programmkonstrukte. Ich verwende derzeit viel mehr Warnings: -pedantic -Wall -Wextra -Wtrigraphs -Wcomment -Wunused-macros -Wendif-labels -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Waddress -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsign-conversion -Waggregate-return -Wmissing-declarations -Wredundant-decls -Wunreachable-code -Wmissing-field-initializers -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-signedness -Winit-self -Wswitch-default -Wswitch-enum -Wunused-parameter -Wstrict-aliasing -Wlogical-op -Wtrampolines -Wnull-dereference -Wdangling-else -Walloc-zero -Wrestrict -Wduplicated-cond -Warray-bounds=2 Für C zusätzlich: -Wdeclaration-after-statement -Wbad-function-cast -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wnested-externs -Wc++-compat -Wjump-misses-init Für C++ zusätzlich: -Wctor-dtor-privacy -Wnon-virtual-dtor -Wreorder -Weffc++ -Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual -Wuseless-cast -Wsuggest-final-types -Wsuggest-override -Wsign-promo -Wzero-as-null-pointer-constant |
Weitere Tools zur Programmierung werden in meinem Skript Softwaretechnik besprochen.
Wer Linux (auf der Befehlszeile, nicht nur zum Herumklicken) lernen will: Hier gibt's eine Linux-Einführung für Anfänger und hier eine Kurzreferenz der Linux-Befehle (und hier gibt es das ganze Buch zum online Lesen).