Weiter Zurück Inhaltsverzeichnis
Der Projekt Optionen Dialog, den Sie über das Projekt Menü erreichen können, ermöglicht es Ihnen alle Parameter einzustellen, die für die Programmerstellung notwendig sind. Die Parameter werden für die Makefile.am's und für das configure.in Skript verwendet (z.B. Versionsnummer oder Compilerwarnungen) und beeinflussen auch die Compilervoreinstellungen. Nach einer Änderung dieser Optionen sollten Sie ein 'DistClean' oder 'Alles neu erstellen' ausführen, damit Ihr Projekt mit den neuen Optionen kompiliert wird. Denken Sie daran, daß Sie nur debuggen können, wenn Sie das Erzeugen von Debuginformation eingeschaltet haben. Die Menge an Debuginformation kann mit Hilfe des Debug-Levels eingestellt werden (0-3). Wenn Sie Funktionen hinzufügen, die zu einer Bibliothek gehören, die nicht mit Hilfe der Linkereinstellungen eingebunden wurde, wird Ihr Programm nicht korrekt gebunden werden. Behalten Sie also die Linker Flags im Auge.
Für eine Release Version sollten Sie die folgenden Einstellungen vornehmen:
Auf der ersten Seite der Projekt Optionen können Sie die allgemeinen Einstellungen für Ihr Projekt vornehmen. Dies sind der Name des Projekts, die Versionsnummer, der Name des Autors und seine Email-Adresse. Außerdem können Sie angeben ob und welche Versionsverwaltung Sie verwenden wollen. Sie können im Feld "Kurze Information" auch noch zusätzliche Angaben über den Verwendungszweck o.ä. Ihres Programmes machen.
Unter Compileroptionen können Sie die Compilerflags für Zielcomputer, Debuggen und zusätzliche Optionen setzen.
Unter Ziel können Sie zwei Optionen einstellen:
Zielcomputer : Sie können hier den Maschinentyp für Ihr Programm eingeben. Andere Typen als Ihre Maschine werden gewöhnlich nur benötigt, um vorcompilierte Pakete zu erstellen. i386v übergibt -b an den Compiler und ist für Cross-Compiler gedacht, um ein Binary für ein Intel-System, das mit Unix System V läuft, zu erstellen. Normalerweise können Sie die Standardeinstellung verwenden.
Optimieren: Setzen Sie hier die -O Option für den GCC. Abschalten der Optimierung bedeutet -O0. Je höher der Level, desto länger dauert der Compiliervorgang. Allerdings ist dann die Ausführgeschwindigkeit höher. Es können Optimierungslevel von 0 (keine Optimierung) bis 3 (maximale Optimierung) eingestellt werden.
Für eine Release Version Ihrer Anwendung schalten Sie die Optimierung ein und wählen Level 2.
Rechts vom Zielkasten sehen Sie die Debug-Einstellungen. Dies bedeutet, daß Sie den Compiler dazu veranlassen können, Informationen für Debugger in die ausführbare Datei zu schreiben, so daß der Programmierer in der Lage ist, die Anwendung im Kontext mit dem Quellcode zu debuggen (Symbolisches Debuggen).
Debuginfo erzeugen setzt das -g Flag; Debuglevel gibt an, wieviele Informationen in die ausführbare Datei geschrieben werden. Sie können ein Level zwischen 1 und 3 setzen. Denken Sie daran, daß die ausführbare Datei mit Erhöhung des Levels sowohl größer als auch langsamer wird.
Informationenen für gprof erzeugen: Es werden zusätzliche Informationen für den Profiler gprof generiert. Diese Option setzt das -pg Flag.
Temporäre Dateien speichern: Speichert die üblichen temporären Dateien im aktuellen Verzeichnis. Das bedeutet, daß das Compilieren der Datei foo.c die Dateien foo.o, foo.i und foo.s erzeugt.
Für eine Release Version Ihrer Anwendung schalten Sie Debuggen aus.
Das Texteingabefeld am unteren Rand dient dazu manuell weitere Optionen einzugeben. Diese Optionen setzen die CXXFLAGS Umgebungsvariable in den Make Dateien. Make setzt die Flags vor der Erstelling und setzt sie anschließend wieder zurück. Eine vollständige Beschreibung aller Compileroptionen finden Sie in Ihrer Compilerdokumentation; für gcc und egcs können Sie sich mit man gcc informieren; man g++ gibt Informationen zum c++ Skript aus, daß zur Steuerung des Compilers verwendet wird.
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.
Die Linker Optionen für Ihr aktuelles Projekt können Sie auf der nächsten Seite der Projektoptionen eingeben. Sie müssen die Bibliotheken anwählen, die Ihr Programm verwendet. Wenn Ihr Programm z.B. die Klasse KFileDialog benutzt, müssen Sie KFile wählen, da KFileDialog ein Teil dieser Bibliothek ist. Für Klassen oder Funktionen die Sie nicht ankreuzen können, verwenden Sie das "Zusätzliche Bibliotheken" Feld.
Wenn Sie einen Debugger benützen wollen, sollten Sie diese Informationen in den Objektdateien behalten. Es ist sinnlos, den Compiler Debuginformationen erzeugen zu lassen und sie mit dieser Option zu entfernen.
Auf Systemen, die dynamische Bibliotheken unterstützen, verhindert diese Option das Linken mit diesen. Auf anderen Systemen hat diese Option keine Wirkung.
Geben Sie hier Linkeroptionen, mit denen der Linker aufgerufen werden soll, ein.
Dieser Abschnitt enthält Ankreuzboxen für die für QT/KDE Entwicklung am häufigsten benötigten Bibliotheken. Sie müssen diese Bibliotheken auswählen, sonst beschwert sich der Linker über nicht aufgelöste Symbole.
Die X11 Bibliothek. Erforderlich für alle X-Window Programme.
Die X11 Erweiterungsbibliothek. Die meisten X-Window Programme brauchen auch Xext.
Die Qt Bibliothek. Erforderlich für Qt und KDE Anwendungen.
Die KDE Core Bibliothek; Enhält die Basisklasssen für KDE Applikationen.
Das KDE Benutzer-Interface; Enthält KDE-specifische Widgets.
Die KHTML Widget Bibliothek.
Die KFM Bibliothek; Enthält Klassen für KFM Funktionen.
Die KFile Bibliothek. Enthält File Dialoge etc.
Die KSpell Bibliothek. Enthält ein Interface zur Rechtschreibprüfung mit ISpell.
Die KAdressBook Bibliothek. Benötigt zum Zugriff auf das Adressbuch und auf Adressbuch Widgets
Da GNU make einige nützliche Optionen bereitstellt, enthält der Projekt Optionen Dialog eine Seite mit Makeoptionen, auf der Sie die Optionen ein- oder ausschalten können. Die verfügbaren Einstellungen sind:
Es werden zusätzliche Debugginginformationen ausgegeben. Diese Informationen sagen Ihnen welche Dateien für die Neuerstellung in Betracht gezogen werden, welche Datei-Zeiten verglichen werden und mit welchem Ergebnis, welche Dateien tatsächlich neu erstellt werden müssen, welche impliziten Regeln in Betracht kommen und welche angewendet werden... Alles was interessant ist um zu sehen, wie make entscheidet was zu tun ist.
Arbeite soweit möglich nach Fehlern weiter. Während das Ziel bei dem der Fehler auftrat und von diesem Ziel abhängige Dateien nicht erstellt werden können, ist es dennoch möglich, andere Abhängigkeiten zu bearbeiteten.
Gibt die Datenbank aus ( Regeln und Variablenwerte) die sich aus dem Lesen der make-Dateien ergeben; danach wird normal oder wie sonst angegeben weitergearbeitet. Außerdem wird die Versionsnummer ausgegeben.
Gibt Variablen aus der Betriebssystemumgebung den Vorrang vor Variablen aus den make-Dateien.
Schaltet die Verwendung der eingebauten impliziten Regeln aus. Außerdem wird die Standarderweiterungsliste für Dateierweiterungen gelöscht.
Führt touch auf Dateien aus ( markiere sie als aktuell, ohne sie wirklich zu verändern). Dies wird verwendet um weitere Aufrufe von make zu täuschen.
Ignoriere alle Fehler in Kommandos, die beim Erstellen ausgeführt werden.
Zeige Kommandos, die ausgeführt werden, nicht an.
Gibt vor und nach den Prozessen das Arbeitsverzeichnis aus. Dies kann nützlich sein, um Fehler in kompliziert verschachtelten, rekursiven 'Make'-Kommandos zu finden.
Gibt die Anzahl der Jobs (Kommandos) an, die gleichzeitig abgearbeitet werden. Wenn Sie ein einzelnes CPU-System haben, ist es nicht empfehlenswert, mehr als 2 zu wählen.
Täusche vor, daß die Zieldatei gerade verändert wurde. Dies ist fast das gleiche wie 'touch' auf die Datei auszuführen, allerdings wird die Änderungszeit nur für 'Make' geändert. Wenn Sie den Ordnerknopf auf der linken Seite drücken, können Sie eine Datei geändert setzen. Diese wird beim nächsten Aufruf von 'make' neu gebaut.
Wählen Sie hier andere zusätzliche Optionen für Ihr Make-Programm. Sie können weitere Informationen zu Make Optionen auf den manpages finden.
Weiter Zurück Inhaltsverzeichnis