Benutzerhandbuch zu KDevelop: Der Referenzführer zur KDevelop Integrierten Entwicklungsumgebung für Unix Systeme, Version 1.2 | ||
---|---|---|
Zurück | Kapitel 9. Erstellungsoptionen | Vor |
Im folgenden werden die möglichen Einstellungen für die Compiler-Warnungen des Projekt-Optionen Dialogs, Seite 3, erläutert. Die Erklärungen selbst sind der man-page des GCC, egcs Version 1.1.1 entnommen. Die Warnungen selbst sind diagnostische Meldungen, die anzeigen, das die entsprechenden Programmanweisungen möglicherweise Fehler verursachen.
Standard-Warnungen kombiniert
Compiliere mit -W. Diese Einstellung fügt Warnungen hinzu, die nicht in -Wall enthalten sind. Bitte lesen Sie die GCC-Info für weitere Informationen.
Warnungen über bestimmte Konstruktionen ausgeben, die sich unter traditionellem und ANSI C verschieden verhalten.
Warnung anzeigen, falls ein undefinierter Bezeichner in einer '&#;if' Direktive verwendet wird
Warnung anzeigen, falls eine lokale Variable eine andere lokale Variable überdeckt.
Warnung anzeigen, falls zwei verschieden Bezeichner in den ersten LEN Buchstaben übereinstimmen. Dies kann bei der Übersetzung eines Programms mit einigen nicht mehr zu verwendenden Compilern helfen.
Warnung anzeigen, falls ein Objekt mit einer Größe über LEN Bytes definiert wird.
Warne vor allem, das von der Größe eines Funktionstypen oder von einem void abhängt. GNU C weist diesen Typen aufgrund von Komfort von Berechnungen mit void * Zeigern und Zeigern auf Funktionen eine Größe von 1 zu.
Warne, wenn ein Funktionsaufruf eine Umwandlung zu einem nicht passenden Typ ist. Z. B., wenn int malloc() eine Umwandlung zu irgendwas * ist.
Warne, wenn ein Zeiger gecastet wird und dabei ein Typqualifizierer beim Ziel verloren ginge.Z.B., wenn ein const char * nach char * gecastet würde.
Warne, wenn ein Zeiger so gecastet wird, daß das erforderliche Alignment des Zieles vergrößert würde. Z.B. wenn auf Maschinen, auf denen Integer nur 2- oder 4-Byte aligned sein können char * nach int * gecastet werden soll.
Gebe Stringkonstanten den Typ const char&[;Länge]i, so daß das Kopieren einer solchen Adresse in einen nicht const char * Zeiger eine Warnung erzeugt. Diese Warnungen können helfen zur Compilezeit Code zu finden, der versucht in eine Strinkonstante zu schreiben, aber nur wenn man sehr aufmerksam beim Gebrauch von const in Deklarationen und Prototypen war. Ansonsten werden diese Meldungen nur lästig, weshalb sie mit -Wall nicht erzeugt werden.
Warne, wenn ein Prototyp eine Typumwandlung verursacht, die anders ist als die, die durchgeführt würde, wäre der Prototyp nicht da. Dies beinhaltet Konvertierungen von Festpunkt nach Fließkomma und umgekehrt und Konvertierungen, die die Breite oder Vorzeichenbehaftung eines Festpunktargumentes betreffen, es sei den es entspräche der Standarderweiterung. Ebenso wird gewarnt, wenn eine negative, ganzzahlige Konstante implizit in einen vorzeichenlosen Typ umgewandelt wird.
Warne, wenn ein Vergleich zwischen signed und unsigned ein falsches Ergebnis geben könnte, weil signed zu unsigned umgewandelt wird.
Warne, wenn eine Funktion, die eine Struktur oder Union zurückgibt, definiert oder aufgerufen wird.
Warne, wenn eine Funktion ohne Argumenttypen deklariert oder definiert wird. (Eine Funktionsdefinition im alten Stil ist ohne Warnung erlaubt, wenn vorher eine Deklaration steht, die die Argumenttypen deklariert.)
Warne, wenn eine globale Funktion ohne vorherige Prototypdeklaration definiert wird (auch wenn die Def. selbst einen Prototyp enthält). Benutzen Sie diese Option, um globale Funktionen zu finden, die nicht in Headerdateien deklariert sind.
Warne, wenn eine globale Funktion ohne vorherige Deklaration definiert wird (auch wenn die Def. selbst einen Prototyp enthält. Benutzen Sie diese Option, um globale Funktionen zu finden, die nicht in Headerdateien deklariert sind.
Warne, wenn etwas mehr als einmal in demselben Sichtbarkeitsbereich deklariert wurde (auch in Fällen, wo die mehrfache Deklaration gültig ist und nichts ändert).
Warne, wenn eine extern Deklaration in einer Funktion angetroffen wird.
Warne, wenn eine Funktion nicht 'inline' sein kann, sie aber als 'inline' deklariert wurde, oder wenn die -finline-functions-Option angegeben wurde.
Warne, wenn eine alte (C-Stil) Umwandlung im Programm benutzt wird.
Warne, wenn die Deklaration einer Methode in einer abgeleiteten Klasse möglicherweise ein fehlerhafter Versuch ist, eine virtuelle Methode zu definieren (nur C++). In einer abgeleiteten Klasse müssen die Definitionen virtueller Methoden in der Schnittstelle mit der Deklaration dieser virtuellen Methode in der Basisklasse übereinstimmen. Mit dieser Option warnt der Compiler, wenn eine Funktionsdeklaration im Namen, aber nicht in der Schnittstelle mit der Deklaration einer virtuellen Methode in der Basisklasse übereinstimmt, wenn also die virtuelle Methode nicht definiert, sondern überladen würde.
Warne, wenn das Syntheseverhalten von g++ nicht mit dem von cfront übereinstimmt.
(-Werror) Warnungen als Fehler ausgeben. Die Kompilierung wird bei jeder Warnung abgebrochen.
Für eine Release Version Ihrer Anwendung sollten Sie -Wall einschalten.