C++-Compiler

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Projektoptionen (Dialogfeld)


Projekt > Optionen > C++-Compiler

Verwenden Sie dieses Dialogfeld zum Festlegen von Optionen für die C++-Compiler.

Optionen Beschreibung

Ziel, Übernehmen, Speichern

Siehe Optionen für das Ziel.

Gemeinsame Elemente

Siehe Gemeinsame Elemente auf den Projektoptionsseiten.

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 = True

Destruktor-Bereinigung
(-xd)

Wenn diese Option aktiviert ist und eine Exception auftritt, werden für alle automatisch im Bereich der catch- und throw-Anweisungen deklarierten Objekte Destruktoren aufgerufen.

Normalerweise sollten Sie zusammen mit dieser Option auch die Option RTTI aktivieren (-RT) festlegen. Für dynamische Objekte, die mit new zugewiesen wurden, werden die Destruktoren nicht automatisch aufgerufen, und es erfolgt auch keine automatische Freigabe dieser Objekte.

Vorgabe = True

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 = False

Globaler Destruktorzähler
(-xdg)

Verwendet die globale Destruktorzählung (aus Gründen der Kompatibilität mit älteren Versionen des Compilers).

Vorgabe = False

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 strukturierten Exception-Behandlungscode (Structured Exception Handling, SEH) zugeordnet. Wenn Sie SEH nicht verwenden und Variablen mit diesem Namen vorhanden sind, bedeutet dies, dass Sie diese Variablen nicht referenzieren können und der Code nicht compiliert wird. Diese Option bewirkt, dass der Compiler die speziellen Symbole in diesem Ereignis verbirgt. So lassen sich auch Variablen mit diesem Namen verwenden.

Vorgabe = False

Positionsinformation
(-xp)

Ist diese Option aktiviert, gibt der Compiler den Dateinamen und die Nummer der Quelltextzeile aus, an der eine Exception aufgetreten ist. Dies ermöglicht die Identifizierung von Exceptions zur Laufzeit. Das Programm kann aufgrund dieser Angaben mit der globalen Funktion __ThrowFileName die Datei und mit der globalen Funktion __ThrowLineNumber die Zeilennummer ermitteln, in der die Exception aufgetreten ist.

Vorgabe = False

Keine DLL/MT-Destruktor-Bereinigung
(-xds)

Führt keine Bereinigung von DLLs oder Multithread-Destruktoren aus.

Vorgabe = False

Langsame Exception-Epiloge
(-xs)

Wenn diese Option festgelegt ist, wird Epilogcode zur Exception-Behandlung nicht inline erweitert. Diese Option beeinträchtigt die Leistung geringfügig.

Vorgabe = False

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.
Allgemein gilt: Wenn die Option "Destruktor-Bereinigung aktivieren" (-xd) ausgewählt ist, muss auch diese Option festgelegt werden.

Vorgabe = True

-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 = False

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

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.

Vorgabe*
Für die Member-Zeiger werden keine Optionen festgelegt.
Dies ist die Vorgabe.

So klein wie möglich
-Vmd


Mehrfachvererbung
-Vmm


Einfachvererbung
-Vms

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


Mehrfachvererbung
-Vmm


Einfachvererbung
-Vms

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
(-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 Member-Funktionen und -Definitionen für statische Daten-Member (bei einer Template-Klasse). Diese sind in der Regel in einer Header-Datei enthalten.

Auf diese Weise lassen sich Template-Instanzen einfach erstellen. Dies ist die Vorgabe.

Extern
(-Jgx)
Der Compiler erzeugt externe Referenzen auf alle Template-Instanzen. Für Template-Instanzen, die gelinkt werden müssen, muss eine explizite Instantiierungsdirektive in mindestens einem anderen Modul enthalten sein.

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
(-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 mit Linkern und Assemblern von C++Builder kompatibel. Dies ist die Vorgabe.

Extern
(-V0)
Es werden externe Referenzen auf virtuelle Tabellen erzeugt. Wenn Sie die Option "Intelligent" nicht verwenden möchten, 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 ein Modul 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.

Vorgabe = Intelligent

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:

  • True: BCC32 ist als C++-Compiler für Projekte für 32-Bit-Windows-Plattformen aktiviert.
  • False: BCC32C ist als C++-Compiler für Projekte für 32-Bit-Windows-Plattformen aktiviert.

Vorgabe = True

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 = False

Option "Enums mit Integergröße"

Option "Enums mit Integergröße"

-fshort-enums

Option "Enums mit Integergröße"

N/V
-fshort-enums

N/V
-fshort-enums

N/V
-fshort-enums

Aufrufkonvention

Pascal
(-p)
Weist den Compiler an, eine Pascal-Aufrufsequenz für Funktionsaufrufe (keine Unterstriche, nur Großbuchstaben, Aufruffunktion bereinigt den Stack, Parameter von links nach rechts verarbeiten) zu erzeugen. Diese Option hat denselben Effekt wie die Deklaration aller Unterroutinen und Funktionen mit dem Schlüsselwort __pascal. Die resultierenden Funktionsaufrufe sind normalerweise kleiner und schneller als diejenigen, die mit der Aufrufkonvention C (-pc) generiert wurden. Funktionen müssen Argumente immer mit passendem Typ und passender Anzahl übergeben. Mit den Schlüsselwörtern __cdecl, __fastcall oder __stdcall kann eine Funktion oder eine Unterroutine explizit mit einer anderen Aufrufkonvention deklariert werden.

C
(-pc)*
Weist den Compiler an, eine C-Aufrufsequenz für Funktionsaufrufe (Unterstriche generieren, Berücksichtigung von Groß- und Kleinschreibung, Parameter von rechts nach links verarbeiten) zu erzeugen. Diese Option hat denselben Effekt wie die Deklaration aller Unterroutinen und Funktionen mit dem Schlüsselwort __cdecl. Funktionen, die mit der Aufrufkonvention C deklariert sind, können eine variable Parameterliste entgegennehmen, das heißt, die Anzahl der Parameter muss nicht fest sein.
Mit den Schlüsselwörtern __pascal, __fastcall oder __stdcall kann eine Funktion oder eine Unterroutine explizit mit einer anderen Aufrufkonvention deklariert werden. Dies ist die Vorgabe. _msfastcall
(-pm)
Weist den Compiler an, die Aufrufkonvention __msfastcall für alle Funktionen zu verwenden, für die keine explizite Aufrufkonvention deklariert ist.

Fastcall (register)
(-pr)
Weist den Compiler an, alle Unterroutinen und Funktionen mit der Register-Parameterübergabekonvention zu erzeugen. Dies hat denselben Effekt wie die Deklaration aller Unterroutinen und Funktionen mit dem Schlüsselwort __fastcall. Wenn diese Option aktiviert ist, erwarten Funktionen und Routinen die Parameterübergabe in Registern.

Mit den Schlüsselwörtern __pascal, __cdecl oder __stdcall kann eine Funktion oder Unterroutine explizit mit einer anderen Aufrufkonvention deklariert werden.

stdcall
(-ps)
Der Compiler generiert eine stdcall-Aufrufsequenz für Funktionsaufrufe (keine Unterstriche, Schreibweise beibehalten, Ablegen aufgerufener Funktionen auf dem Stack, Ablegen der Parameter von rechts nach links). Diese Option hat denselben Effekt wie die Deklaration aller Unterroutinen und Funktionen mit dem Schlüsselwort __stdcall. Funktionen müssen Argumente immer mit passendem Typ und passender Anzahl übergeben.

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
-p

C
-pc

_msfastcall
-pm

Fastcall(register)
-pr

stdcall
-ps

Plattform nicht unterstützt

-mcdecl


Plattform nicht unterstützt

-mfastcall


-mrtd, -mstdcall

Plattform nicht unterstützt

-mcdecl


Plattform nicht unterstützt

-mfastcall


-mrtd, -mstdcall

Pascal
-p

C
-pc

_msfastcall
-pm

Fastcall(register)
-pr

stdcall
-ps

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
(-a1)
Erzwingt keine Ausrichtung von Variablen oder Datenfeldern an bestimmten Speichergrenzen. Der Compiler richtet die Daten an geraden oder ungeraden Adressen aus, je nach der nächsten verfügbaren Adresse. Während die Byte-Ausrichtung zwar kompaktere Programme erzeugt, sind diese meist jedoch etwas langsamer. Die anderen Optionen zur Datenausrichtung erhöhen die Geschwindigkeit, mit der 80x86-Prozessoren Daten abrufen und speichern.

Word
(-a2)
2-Byte-Datenausrichtung. Richtet Nicht-Zeichendaten an geraden Adressen aus. Automatische und globale Variablen werden korrekt ausgerichtet. char- und unsigned char-Variablen und -Felder können an jeder Adresse platziert werden; alle anderen werden an geraden Adressen ausgerichtet.

Double Word
(-a4)
4-Byte-Datenausrichtung. Richtet Nicht-Zeichendaten an 32-Bit-Grenzen aus (4 Byte). Datentypen mit weniger als 4 Byte werden entsprechend ihrer Typgröße ausgerichtet.

Quad Word
(-a8)*
8-Byte-Datenausrichtung. Richtet Nicht-Zeichendaten an 64-Bit-Grenzen aus (8 Byte). Datentypen mit weniger als 8 Byte werden entsprechend ihrer Typgröße ausgerichtet. Dies ist die Vorgabe.

Paragraph
(-a16)
16-Byte-Datenausrichtung. Richtet Nicht-Zeichendaten an 128-Bit-Grenzen aus (16 Byte). Datentypen mit weniger als 16 Byte werden entsprechend ihrer Typgröße ausgerichtet.

Vorgabe = Quad Word (8)

Byte
-a1

Word
-a2

Double Word
-a4

Quad Word
-a8

Paragraph
-a16

-fpack-struct=1


-fpack-struct=2


-fpack-struct=4


-fpack-struct=8


-fpack-struct=16

N/V


N/V


N/V


N/V


N/V

Byte
-a1

Word
-a2

Double Word
-a4

Quad Word
-a8

Paragraph
-a16

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 = False

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 = Aus

Maximale Fehleranzahl
(-j)

Bricht die Compilierung ab, sobald eine bestimmte Anzahl von Fehlern erkannt wurde. Werte von 0 bis 255 sind möglich.

Vorgabe = 1

Die Eingabe von 0 bewirkt, dass die Compilierung fortgesetzt wird, bis entweder das Ende der Datei oder die maximale Warnungsanzahl erreicht ist, je nachdem, welcher Fall zuerst eintritt.

Maximale Warnungsanzahl
(-g)

Bricht die Compilierung ab, sobald eine bestimmte Anzahl von Warnungen erkannt wurde. Werte von 0 bis 255 sind möglich.

Vorgabe = 255

Die Eingabe von 0 bewirkt, dass die Compilierung fortgesetzt wird, bis entweder das Ende der Datei oder die maximale Fehleranzahl erreicht ist, je nachdem, welcher Fall zuerst eintritt.

Beim ersten Fehler anhalten
(-jb)

Bricht die Stapel-Compilierung nach der ersten Datei ab, die Fehler verursacht. Zum Beispiel:

BCC32.exe -c -gb *.ccp
BCC32.exe -c -gb Datei1.cpp Datei2.cpp

Ohne das Flag -jb kann die Stapel-Compilierung bis zur nächsten vorgesehenen Datei fortgeführt werden, auch wenn eine vorherige Datei einen Fehler verursacht hat.

Maximale Fehleranzahl
-j

Maximale Warnungsanzahl
-g

Beim ersten Fehler anhalten
-jb

-ferror-limit


Plattform nicht unterstützt


Plattform nicht unterstützt
N/V


Plattform nicht unterstützt


Plattform nicht unterstützt

Maximale Fehleranzahl
-j

Maximale Warnungsanzahl
-g

Beim ersten Fehler anhalten
-jb

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 = False

-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 = False

-P

-x c++

-x c++

-P

-x c++

-x c++

-x c++

Anweisungs-Set

80386
(-3)*
Erzeugt für den geschützten Modus eines 80386-Prozessors kompatible Anweisungen. Dies ist die Vorgabe.

80486
(-4)
Erzeugt für den geschützten Modus eines i486-Prozessors kompatible Anweisungen.

Pentium
(-5)
Erzeugt Pentium-Instruktionen. Diese Option erhöht zwar die Ausführungsgeschwindigkeit auf Pentium-Computern, kann das Programm allerdings etwas vergrößern, wenn es mit der Optionen 80386 oder i486 compiliert wird. Ferner ist bei für Pentium compiliertem Code mit einer Leistungseinbuße auf nicht-Pentium-Systemen zu rechnen.

Pentium Pro
(-6)
Erzeugt Pentium Pro-Instruktionen.

Vorgabe = 80386

80386
-3

80486
-4

Pentium
-5

Pentium Pro
-6

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

80386
-3

80486
-4

Pentium
-5

Pentium Pro
-6

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 = True

-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).
Wenn diese Option deaktiviert ist (-b-), legt der Compiler sizeof(enum x) so klein wie möglich an und wendet Enum-Regeln für die Typprüfung an.

Vorgabe = False

-b

-fshort-enums

N/V

-b

N/A N/A N/A

Sprachkonvention

ANSI
(-A)

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
(-AG)

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
(-AK)

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.
Borland/CodeGear
(auch -A-) (-AT)*

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
(-AU)

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.

Hinweis: Wenn der Quelltext Syntaxfehler in Deklarationen enthält, sollten Sie prüfen, ob diese Option auf Borland/CodeGear gesetzt ist.

Vorgabe = Borland/CodeGear.

ANSI
-A

GNU
-AG

K & R
-KR

Borland/CodeGear
-AT

Unix System V
-AU

-fno-borland-extensions

Plattform nicht unterstützt

Plattform nicht unterstützt

-fborland-extensions

Plattform nicht unterstützt

N/A


Plattform nicht unterstützt

Plattform nicht unterstützt

N/A


Plattform nicht unterstützt

ANSI
-A

GNU
-AG

K & R
-KR

Borland/CodeGear
-AT

Unix System V
-AU

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
(-r-)*
Deaktiviert die Verwendung von Registervariablen. Weist den Compiler an, keine Registervariablen zu verwenden, selbst dann nicht, wenn das Schlüsselwort register vorhanden ist. Dies ist die Vorgabe.

Explizit
(-rd)
Verwendet Registervariablen nur, wenn Sie das Schlüsselwort register angeben, und ein Register verfügbar ist. Mit dieser Option oder der Option Immer (-r) optimieren Sie die Nutzung von Registern. Sie können -rd in #pragma-Optionen verwenden.

Immer
(-r)
Weist automatisch Registervariablen zu, wenn möglich, auch wenn Sie das Schlüsselwort register nicht verwenden. Im Allgemeinen können Sie Immer verwenden, es sei denn, Sie arbeiten mit bereits vorhandenem Assembly-Code, der keine Registervariablen unterstützt.

Vorgabe = Ohne

Ohne
-r-

Explizit
-rd

Immer
-r

Plattform nicht unterstützt

Plattform nicht unterstützt

Plattform nicht unterstützt

Plattform nicht unterstützt

Plattform nicht unterstützt

Plattform nicht unterstützt

Ohne
-r-

Explizit
-rd

Immer
-r

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 = True

-k

Plattform nicht unterstützt

Plattform nicht unterstützt

-k

Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt

Untergeordnete Seiten

Siehe auch