C++-Compiler
Nach oben zu Projektoptionen (Dialogfeld)
Projekt > Optionen > C++-Compiler
Verwenden Sie dieses Dialogfeld zum Festlegen von Optionen für die C++-Compiler.
Inhaltsverzeichnis
Optionen | Beschreibung |
---|---|
Ziel, Übernehmen, Speichern |
Siehe Optionen für das Ziel. |
Gemeinsame Elemente |
C++-Compilierung
Element | Beschreibung | Compiler-Optionen | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||||||||||||||||
Exceptions aktivieren |
Legt die Exception-Behandlung in C++ fest. Ist diese Option deaktiviert (-x-), und Sie versuchen, die Routinen zur Exception-Behandlung in Ihrem Quelltext 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 Objekt- und Bibliotheksdateien linken, die mit aktivierten Exceptions compiliert wurden (z. B. C++Builder-Laufzeit-Bibliotheken). Vorgabe =
|
Exceptions aktivieren -x Destruktor-Bereinigung -xd Schnelle Exception-Prologe -xf Globaler Destruktorzähler -xdg Exception-Variablen ausblenden -xv Positionsinformation -xp Keine DLL/MT-Destruktor-Bereinigung -xds Langsame Exception-Epiloge -xs |
Exceptions aktivieren -fexceptions Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
N/V Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Exceptions aktivieren -x Destruktor-Bereinigung -xd Schnelle Exception-Prologe -xf Globaler Destruktorzähler -xdg Exception-Variablen ausblenden -xv Positionsinformation -xp Keine DLL/MT-Destruktor-Bereinigung -xds Langsame Exception-Epiloge -xs |
N/V Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
N/V Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
N/V Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt | ||||||||||||||
RTTI aktivieren
|
Veranlasst den Compiler, Code zu erzeugen, der eine Typidentifikation zur Laufzeit (RTTI) ermöglicht. Vorgabe = |
-RT | -frtti | N/V | -RT | N/V | N/V | N/V | ||||||||||||||
Präzision der Elementzeiger |
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 Member einer abgeleiteten Klasse). Vorgabe = |
-Vmp | Plattform nicht unterstützt | Plattform nicht unterstützt | -Vmp | Plattform nicht unterstützt | Plattform nicht unterstützt | Plattform nicht unterstützt | ||||||||||||||
Elementzeiger |
So klein wie möglich 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. Mehrfachvererbung Einfachvererbung Vorgabe* |
So klein wie möglich -Vmd
|
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
So klein wie möglich -Vmd
|
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt | ||||||||||||||
Vorlagenerzeugung |
Vorgabe Auf diese Weise lassen sich Template-Instanzen einfach erstellen. Dies ist die Vorgabe. Extern |
Vorgabe -Jgd Extern -Jgx |
Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt |
Vorgabe -Jgd Extern -Jgx |
Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt | ||||||||||||||
Virtuelle Tabellen |
Intelligent Extern Public Vorgabe = |
Intelligent -V Extern -V0 Public -V1 |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Intelligent -V Extern -V0 Public -V1 |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Klassischer Compiler
Optionen des klassischen Compilers | Beschreibung | Compiler-Optionen | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
'Klassischen' Borland-Compiler verwenden |
Aktiviert entweder den klassischen BCC32-Compiler oder den durch Clang-erweiterten BCC32C-Compiler als C++-Compiler für 32-Bit-Windows-Plattformen. Verwenden Sie diese Option, um von BCC32 zu BCC32C und umgekehrt zu wechseln. Sie können diese Option auf die folgenden Werte setzen:
Vorgabe = |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Allgemeine Compilierung
Allgemeine Compilierung | Beschreibung | Compiler-Optionen | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||||||||
Short enums |
Weist den 64-Bit-Compiler an, Aufzählungen in Minimalgröße zu verwenden. Weist einem Enum-Typ nur so viele Bytes zu, wie für den deklarierten Bereich der möglichen Werte erforderlich sind. Vorgabe = |
Option "Enums mit Integergröße" |
Option "Enums mit Integergröße" |
-fshort-enums |
Option "Enums mit Integergröße" |
N/V |
N/V |
N/V | ||||||
Aufrufkonvention |
Pascal C Fastcall (register) Mit den Schlüsselwörtern __pascal, __cdecl oder __stdcall kann eine Funktion oder Unterroutine explizit mit einer anderen Aufrufkonvention deklariert werden. stdcall Mit den Schlüsselwörtern __cdecl, __pascal oder __fastcall kann eine Funktion oder Unterroutine explizit mit einer anderen Aufrufkonvention deklariert werden. Vorgabe = C (-pc) |
Pascal |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Pascal |
Plattform nicht unterstützt -mcdecl Plattform nicht unterstützt -mfastcall -mrtd, -mstdcall |
Plattform nicht unterstützt -mcdecl Plattform nicht unterstützt -mfastcall -mrtd, -mstdcall |
Plattform nicht unterstützt -mcdecl Plattform nicht unterstützt -mfastcall -mrtd, -mstdcall | ||||||
Datenausrichtung |
Byte Word Double Word Quad Word Paragraph Vorgabe = Quad Word (8) |
Byte |
-fpack-struct=1 |
N/V |
Byte |
N/V N/V N/V N/V N/V |
N/V N/V N/V N/V N/V |
N/V N/V N/V N/V N/V | ||||||
C++-Zugriffskontrolle deaktivieren |
Weist den Compiler an, keine Zugriffskontrolle zu erzwingen. Das heißt, dass der Compiler keinen Fehler ausgibt, wenn auf ein protected oder private Member zugriffen wird, der nicht für den Zugriff vorgesehen ist. Verwenden Sie diese Option für Code, der für BCC32 zulässig ist, aber von BCC64 als Verstoß gegen die Zugriffskontrolle behandelt wird (besser wäre es allerdings, den Code zu aktualisieren, damit er mit den BCC64-Regeln übereinstimmt). Vorgabe = |
Plattform nicht unterstützt |
N/V |
-fno-access-control |
Plattform nicht unterstützt |
N/V | N/V | N/V | ||||||
Stapel-Compilierung aktivieren |
Aktiviert die Stapel-Compilierung. Wenn diese Option aktiviert ist, werden alle Quellmodule (anstatt jedes Modul einzeln) in derselben Befehlszeile an den C++-Compiler übergeben. Bei der Stapel-Compilierung werden Build-Ereignisse für die gesamte Compilierung und nicht für einzelne Dateien erzeugt. Eine Stapel-Compilierung verwendet einen Satz von Projektoptionen. Das Überschreiben dieser Optionen auf Dateiebene ist nicht zulässig. Wenn Sie einen durch Clang erweiterten C++-Compiler verwenden, können Sie mit "Stapel-Compilierung aktivieren" in Kombination mit "C++-Compiler in separatem Prozess ausführen" die parallele Compilierung aktivieren. Durch Clang erweiterte Compiler für 32-Bit-Plattformen halten die Stapel-Compilierung nach dem Fehlschlagen der Compilierung einer Datei an. Vorgabe =
|
Maximale Fehleranzahl |
-ferror-limit Plattform nicht unterstützt Plattform nicht unterstützt |
N/V Plattform nicht unterstützt Plattform nicht unterstützt |
Maximale Fehleranzahl |
N/V Plattform nicht unterstützt Plattform nicht unterstützt |
N/V Plattform nicht unterstützt Plattform nicht unterstützt |
N/V Plattform nicht unterstützt Plattform nicht unterstützt | ||||||
Erweiterte Fehlerinfos |
Der Compiler erzeugt bei Fehlern umfassendere Informationen. Vorgabe = |
-Q |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
-Q | Plattform nicht unterstützt | Plattform nicht unterstützt | Plattform nicht unterstützt | ||||||
C++-Compilierung erzwingen |
Veranlasst den Compiler, alle Quelltextdateien als C++-Dateien, unabhängig von ihrer Dateinamenserweiterung, zu compilieren. Vorgabe = |
-P |
-x c++ |
-x c++ |
-P |
-x c++ |
-x c++ |
-x c++ | ||||||
Anweisungs-Set |
80386 80486 Pentium Pentium Pro Vorgabe = |
80386 |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
80386 |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt | ||||||
Enums mit Integergröße |
Weist Aufzählungstypen (Variablen des Typs enum) ein ganzes Wort (ein 4-Byte-Int bei 32-Bit-Programmen) zu. Ist die Option nicht aktiviert (-bi-), weist der Compiler den kleinsten Integertyp zu, der die Aufzählungswerte aufnehmen kann: Der Compiler weist unsigned oder signed char zu, wenn die Werte der Aufzählung im Bereich zwischen 0 und 255 (Minimum) oder zwischen -128 und 127 (Maximum) liegen, oder unsigned oder signed short, wenn sich die Werte der Aufzählung in einem der folgenden Bereiche befinden: 0..65535 oder -32768..32767. Der Compiler weist den Aufzählungswerten ein 4-Byte-Int (32 Bit) zu, wenn ein Wert außerhalb dieser Bereiche liegt. Vorgabe = |
-bi |
-fshort-enums |
N/A |
-bi |
N/A | N/A | N/A | ||||||
Enums als Integer |
Aktiviert Enums mit Integergröße (-bi, weiter oben beschrieben) und behandelt Enums aus der Sicht der Typprüfung als Integer (schränkt die Typprüfung ein). Vorgabe = |
-b |
-fshort-enums |
N/V |
-b |
N/A | N/A | N/A | ||||||
Sprachkonvention |
ANSI Verwendet ANSI-Schlüsselwörter und -Erweiterungen. Compiliert C- und C++-ANSI-kompatiblen Quelltext. Dies sorgt für eine verbesserte Portabilität. Nicht-ANSI-Schlüsselwörter werden als Schlüsselwörter ignoriert. GNU Verwendet Schlüsselwörter und Erweiterungen von Gcc (GNU Compiler Collection). Gcc wird von der Free Software Foundation unter http://gcc.gnu.org/ (EN) vertrieben. Weist den Compiler an, bestimmte GNU-Schlüsselwörter und -Erweiterungen, wie __attribute__, __const, __inline__, __signed__, zu erkennen. Siehe GNU-Attribute. K & R Verwendet Schlüsselwörter und Erweiterungen von Kernighan und Ritchie (KR). Weist den Compiler an, nur die von Kernighan und Ritchie definierten Erweiterungsschlüsselwörter zu erkennen. Alle C++-Erweiterungsschlüsselwörter werden als normale Bezeichner interpretiert.
Verwendet C++-Schlüsselwörter und -Erweiterungen von Borland/CodeGear/Embarcadero. Weist den Compiler an, Erweiterungen für C-Schlüsselwörter zu erkennen, einschließlich near, far, huge, asm, cdecl, pascal, interrupt, _export, _ds, _cs, _ss, _es und die Register-Pseudovariablen (_AX, _BX usw.). Dies ist die Vorgabe. Unix System V Verwendet Schlüsselwörter und Erweiterungen von UNIX-System V. Weist den Compiler an, nur die Unix V-Schlüsselwörter zu erkennen. Alle C++-Erweiterungsschlüsselwörter von Borland/CodeGear/Embarcadero werden als normale Bezeichner interpretiert.
Vorgabe = |
ANSI |
-fno-borland-extensions |
N/A |
ANSI |
N/A Plattform nicht unterstützt Plattform nicht unterstützt N/A Plattform nicht unterstützt |
N/A Plattform nicht unterstützt Plattform nicht unterstützt N/A Plattform nicht unterstützt |
N/A Plattform nicht unterstützt Plattform nicht unterstützt N/A Plattform nicht unterstützt | ||||||
Registervariablen |
Ohne Explizit Immer Vorgabe = Ohne |
Ohne |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Ohne |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt |
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt | ||||||
Maximale Anzahl der auszugebenden Fehler bis Abbruch festlegen (0 = keine Beschränkung) |
Um die Anzahl der für den 64-Bit-C++-Compiler zulässigen Fehler festzulegen, wählen Sie in diesem Feld die Zahl aus und geben die gewünschte Anzahl ein. Vorgabe = 1 |
Plattform nicht unterstützt |
N/V |
-ferror-limit |
Plattform nicht unterstützt |
N/V |
N/V |
N/V | ||||||
Standard-Stack-Frames |
Erzeugt einen Standard-Stack-Frame (Standardcode für Einritt und Austritt in die/aus der Funktion). Dies ist bei der Fehlersuche hilfreich, da sich der Stack der aufgerufenen Unterroutinen einfacher durchlaufen lässt. Wenn diese Option deaktiviert ist, werden alle Funktionen, die keine lokalen Variablen verwenden und keine Parameter besitzen, mit verkürztem Eintritts- und Rückgabecode compiliert. Damit wird der Code kleiner und schneller. Wenn eine Quelltextdatei zu Debugging-Zwecken compiliert wird, sollte diese Option immer aktiviert sein. Vorgabe = |
-k |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
-k |
Plattform nicht unterstützt | Plattform nicht unterstützt | Plattform nicht unterstützt |
Untergeordnete Seiten
- Erweitert
- Kompatibilität
- Debuggen
- Verzeichnisse und Bedingungen
- Optimierungen
- Ausgabe
- Vorcompilierte Header
- Warnungen