Software für C / C++

Entwicklungsumgebungen unter Windows

... für die DHGE

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.

Es steht jedem frei, irgendeine der im nächsten Abschnitt für die NTA angegebenen Entwicklungsumgebungen zu verwenden.

... für die NTA

Reine C/C++-Compiler für DOS & Windows

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:

Entwicklungsumgebungen unter Linux

Tools zur Formatierung von C/C++-Programmen

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!

gcc-Compiler-Flags

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 filenameAngabe des Filenamens des Outputfiles (ausführbaren Programmes).
-gErzeugen eines Programmes mit Zusatz-Information für Debugger
(Zeilennummern, Variablennamen und -typen, ...).
-std=c11 -pedanticTest auf strikte Einhaltung des ANSI-C11-Standards
(oder -std=c++11 für C++)
-W -WallAusgabe 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

Andere Hilfsprogramme

Weitere Tools zur Programmierung werden in meinem Skript Softwaretechnik besprochen.

Linux allgemein

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).

 
Home