Projekt
Optionen
C++Compiler
C++-Compilierung
Verwenden Sie dieses Dialogfeld dazu, Optionen für den C++ Compiler zu setzen.
|
Build-Konfigurationsoptionen |
Beschreibung |
|
Build-Konfiguration |
Zeigt die aktive Build-Konfiguration an. Wählen Sie mit Hilfe der Drop-Down-Liste eine andere Build-Konfiguration aus. |
|
Speichern unter... |
Zeigt der Dialogfeld Speichern unter an, um die Optionen der aktuellen Konfiguration in eine Datei zu speichern, die als benannte Optionsgruppe geladen werden kann. |
|
Laden... |
Zeigt das Dialogfeld Optionsgruppe anwenden an, in dem Sie die Optionen einer benannten Optionsgruppe für die aktuelle Konfiguration übernehmen können. |
|
C++-Optionen |
Beschreibung |
|
Template-Erzeugung |
Standard (-Jgd)* Der Compiler erzeugt public (globale) Definitionen für alle Template-Instanzen. Wenn dieselbe Template-Instanz von mehreren Modulen erzeugt wird, fügt der Linker die Einzelinstanzen automatisch zu einer einzigen Kopie dieser Instanz zusammen. Für die Erzeugung der Instanzen benötigt der Compiler den Funktionsrumpf (bei einer Template-Funktion) oder die Rümpfe der Elementfunktionen und Definitionen für statische Datenelemente (bei einer Template-Klasse). Diese sind in der Regel in einer Header-Datei enthalten. Template-Instanzen lassen sich so einfach erstellen. Dies ist die Standardeinstellung. Extern (-Jgx) Der Compiler erzeugt externe Referenzen zu allen Template-Instanzen. Für Template-Instanzen, die gelinkt werden müssen, muss eine explizite Instantiierungsdirektive in mindestens einem anderen Modul enthalten sein. |
|
Virtuelle Tabellen |
Intelligent (-V)* Es werden gemeinsame virtuelle C++-Funktionstabellen und Inline-Funktionen für alle Module in einer Anwendung erzeugt. Das Programm enthält dann jeweils nur eine Instanz für jede virtuelle Tabelle bzw. Inline-Funktion. Mit der Option Intelligent erhalten Sie sehr kleine und effiziente ausführbare Dateien. Die erzeugten .OBJ- und .ASM-Dateien sind aber nur zu Linkern und Assemblern von CodeGear kompatibel. Dies ist die Standardeinstellung. Extern (-V0) Es werden externe Referenzen auf virtuelle Tabellen erzeugt. Wenn Sie die Option Intelligent nicht verwenden wollen, können Sie mit Extern (oder Public) globale virtuelle Tabellen erzeugen und referenzieren. Bei Verwendung von Extern müssen ein oder mehrere Module des Programms mit der Option Public compiliert werden, um die Definitionen für die virtuellen Tabellen bereitzustellen. Public (-V1) Es werden public Definitionen für virtuelle Tabellen erzeugt. Bei Verwendung der Option Extern (-V0) muss mindestens eines der Module im Programm mit der Option Public compiliert werden, um die Definitionen für die virtuellen Tabellen bereitzustellen. Alle anderen Module müssen dann mit Extern compiliert werden, damit sie auf die Public-Kopie der virtuellen Tabellen Bezug nehmen. |
|
Elementzeiger |
So klein wie möglich (-Vmd) Member-Zeiger müssen die kleinstmögliche Repräsentation verwenden, damit sie auf alle Member ihrer Klasse zeigen können. Wenn die Klasse an der Stelle der Member-Zeigerdeklaration nicht vollständig definiert ist, verwendet der Compiler die allgemeinste Repräsentation und gibt eine Warnung aus. Dies ist die Standardeinstellung. Mehrfachvererbung (-Vmm) Member-Zeiger können auf Member von Mehrfachvererbungsklassen zeigen. Ausgenommen hiervon sind virtuelle Basisklassen. Einfachvererbung (-Vms) Member-Zeiger können nur auf Member von Basisklassen zeigen, die einfach vererben. Standard * Für die Member-Zeiger werden keine Optionen gesetzt. Dies ist die Standardeinstellung. |
|
Präzision der Elementzeiger (-Vmp) |
Der Compiler verwendet die angegebene Genauigkeit für Member-Zeigertypen. Aktivieren Sie diese Option, wenn ein Zeiger auf eine abgeleitete Klasse explizit in einen Member-Zeiger einer einfacheren Basisklasse umgewandelt wird (d.h. der Zeiger zeigt auf ein Element einer abgeleiteten Klasse). Vorgabe = nicht aktiviert |
|
Exception-Behandlungsoptionen |
Beschreibung |
|
RTTI aktivieren (-RT) |
Der Compiler erzeugt Code, der eine Typidentifikation zur Laufzeit (RTTI) ermöglicht. Allgemein gilt: Wenn die Option Destruktor-Bereinigung aktivieren (-xd) aktiviert ist, muss auch diese Option gesetzt werden. Vorgabe = aktiviert |
|
Exceptions aktivieren (-x) |
Setzt die Exception-Behandlung in C++. Ist diese Option deaktiviert (-x-), und Sie versuchen, die Routinen zu Exception-Behandlung in Ihrem Code zu verwenden, erzeugt der Compiler bei der Compilierung Fehlermeldungen. Wenn Sie diese Option deaktivieren, lassen sich Informationen zur Exception-Behandlung leichter aus Programmen entfernen. Dies ist besonders dann hilfreich, wenn das Programm auf andere Plattformen oder Compiler portiert werden soll. Die Deaktivierung führt nur dazu, dass der Quelltext zur Exception-Behandlung von der Compilierung ausgeschlossen wird. Die Anwendung kann trotzdem Exception-Quelltext enthalten, wenn Sie .OBJ- und Bibliotheksdateien linken, die mit aktivierten Exceptions compiliert wurden (z.B. CodeGear-Laufzeit-Bibliotheken). Vorgabe = aktiviert |
|
Destruktor-Bereinigung (-xd) |
Wenn diese Option aktiviert ist und eine Exception auftritt, werden für alle Objekte, die innerhalb des Bereichs der catch- und throw-Anweisungen deklariert wurden, automatisch die entsprechenden Destruktoren aufgerufen. Normalerweise ist es angebracht, zusammen mit dieser Option auch die Option Laufzeittypinformationen aktivieren (-RT) zu setzen. Für dynamische Objekte, die mit new zugewiesen wurden, werden die Destruktoren nicht automatisch aufgerufen (d.h. es erfolgt keine automatische Freigabe dieser Objekte). Vorgabe = aktiviert |
|
Keine DLL/MT-Destruktor-Bereinigung (-xds) |
Führt keine Bereinigung von DLLs oder Multithread-Destruktoren aus. Vorgabe = nicht aktiviert |
|
Schnelle Exception-Prologe (-xf) |
Erweitert den Inline-Quelltext für jede Funktion zur Exception-Behandlung. Mit dieser Option können Sie die Performance des Programms erhöhen. Die ausführbare Datei nimmt aber an Umfang zu. Vorgabe = nicht aktiviert |
|
Positionsinformation (-xp) |
Ist diese Option aktiv, gibt der Compiler den Dateinamen und die Nummer der Quelltextzeile an, an der eine Exception aufgetreten ist. Dies ermöglicht die Identifizierung von Exceptions zur Laufzeit. Das Programm kann aufgrund dieser Angaben mit __ThrowFileName die Datei und mit __ThrowLineNumber die Zeilennummer ermitteln, in der die Exception aufgetreten ist. Vorgabe = nicht aktiviert |
|
Langsame Exception-Epiloge (-xs) |
Wenn diese Option gesetzt ist, wird Epilogcode zur Exception-Behandlung nicht inline erweitert. Diese Option beeinträchtigt die Performance geringfügig. Vorgabe = nicht aktiviert |
|
Exception-Variablen ausblenden (-xv) |
Der Compiler behandelt die folgenden Symbole bei der Exception-Behandlung als Sonderfall: __exception_info __exception_code __abnormal_termination Diese werden allen speziellen Compiler/RTL-Konstrukten für eine strukturierte Exception-Behandlung (SEH) zugeordnet. Wenn Sie SEH nicht nutzen und Variablen dieses Namens verwenden, bedeutet dies, dass keine Referenz auf diese Variablen möglich ist, und der Code nicht compiliert wird. -xv bewirkt, dass der Compiler seine speziellen Symbole in diesem Ereignis verbirgt. So lassen sich auch Variablen dieses Namens verwenden. Vorgabe = nicht aktiviert |
|
Globaler Destruktorzähler (-xdg) |
Verwendet die globale Destruktur-Zählung (aus Gründen der Kompatibilität mit älteren Versionen des Compilers). Vorgabe = nicht aktiviert |
|
Allgemeine Option |
Beschreibung |
|
Standard für neue Projekte |
Speichert die aktuellen Einstellungen als Standardeinstellungen für neue Projekte. |
|
Copyright© 2008 CodeGear™. Alle Rechte vorbehalten.
|
|
Was denken Sie über dieses Thema? Feedback senden!
|