C++-Compiler Erweitert
Nach oben zu C++-Compiler
Projekt > Optionen > C++-Compiler > Erweitert
In diesem Dialogfeld legen Sie erweiterte Optionen für den C++-Compiler fest.
Optionen | Beschreibung |
---|---|
Ziel, Übernehmen, Speichern |
Siehe Optionen für das Ziel. |
Gemeinsame Elemente |
Inhaltsverzeichnis
Assembler-Optionen
Assembler-Optionen | Beschreibung | Compiler-Optionen | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
Assembler-Optionen |
Geben Sie zusätzliche Assembler-Optionen (wie z. B. 32-Bit-Compiler, die durch Clang erweitert wurden, erstellen keine Assembly-Dateien, die mit TASM32 assembliert werden können. |
N/A | Plattform nicht unterstützt | Plattform nicht unterstützt | Plattform nicht unterstützt | Plattform nicht unterstützt | Plattform nicht unterstützt | |
In .ASM compilieren, dann in .OBJ zusammenstellen |
Veranlasst, dass der Compiler zunächst aus dem C++-Quelltext (oder C-Quelltext) eine .ASM-Datei (entspricht der Befehlszeilenoption -S) erzeugt. Dann ruft der Compiler TASM32 (oder den mit der Option Zu verwendenden Assembler festlegen angegebenen Assembler) auf, um eine .OBJ-Datei aus der .ASM-Datei zu erstellen. Die .ASM-Datei wird anschließend gelöscht. Das Programm kann nicht mit der Option -B compiliert werden, wenn im C- oder C++-Quelltext statische globale Variablen deklariert werden, die Schlüsselwörter in der Assembler-Sprache sind. Der Compiler stellt nämlich statischen globalen Variablen keinen Unterstrich voran (wie bei anderen Variablen), und die Assembler-Schlüsselwörter erzeugen Fehler, wenn der Code zusammengestellt wird. Der Vorgabewert ist False. |
In .ASM compilieren |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
Zu verwendenden Assembler festlegen |
Stellt Anweisungen zusammen und verwendet dabei den angegebenen Dateinamen als Assembler. Der 32-Bit-Windows-Compiler verwendet TASM32 als Standard-Assembler. Die -Popup-Schaltfläche ist unter Gemeinsame Elemente auf den Projektoptionsseiten beschrieben. |
-E |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
N/A |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Gleitkomma-Optionen
Gleitkomma-Optionen | Beschreibung | Compiler-Optionen | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
FDIV-Fehler korrigieren |
Einige Pentium-Prozessoren der ersten Serie führen bestimmte Gleitkommadivisionen nicht mit voller Genauigkeit aus. Auch wenn die Chancen gering sind, dass dieses Problem heute noch auftaucht, kann mit dieser Option Code eingefügt werden, der eine Gleitkommaoperation so emuliert, dass sicher das richtige Ergebnis geliefert wird. Die Geschwindigkeit der Ausführung des Prozessorbefehls FDIV sinkt dann allerdings. Diese Option korrigiert FDIV-Befehle nur in Modulen, die Sie compilieren. Die Laufzeitbibliothek enthält ebenfalls FDIV-Befehle, die von dieser Option nicht verändert werden. Wenn Sie das Problem auch in den Laufzeitbibliotheken beheben möchten, müssen Sie sie mit dieser Einstellung neu compilieren. Die folgenden Funktionen verwenden FDIV-Befehle der Assembler-Sprache und werden von dieser Option nicht korrigiert:
Funktionen, die eine Gleitkommazahl in einen String konvertieren oder umgekehrt (z. B. printf oder scanf), werden von dieser Option ebenfalls nicht korrigiert. |
-fp |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
-fp |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Schnelles Gleitkomma |
Gleitkommaoperationen können ohne Berücksichtigung expliziter oder impliziter Typkonvertierungen optimiert werden. Berechnungen werden dann schneller als im ANSI-Modus durchgeführt. Diese Option dient dazu, bestimmte Optimierungen zu ermöglichen, die auf technischer Ebene keiner korrekten C-Semantik entsprechen. double x; x = (float) (3.5*x);
Um dies korrekt ausführen zu können, wird x mit 3,5 multipliziert. Das daraus resultierende Double wird entsprechend der Gleitkommagenauigkeit gekürzt und dann als Double in x gespeichert. Bei der schnellen Gleitkommaoperation wird das lange Double-Produkt direkt in ein Double konvertiert. Da nur wenige Programme auf diese hohe Genauigkeit angewiesen sind, ist das schnelle Gleitkomma die Standardeinstellung. Wenn diese Option deaktiviert ist (-ff-), folgt der Compiler strikt den ANSI-Regeln zur Gleitkommakonvertierung. |
-ff |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
-ff |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Stille Gleitkommavergleiche |
Verwendet die stille Gleitkommaanweisung (FUCOMP). Der Vorgabewert ist True. |
-fq |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
-fq |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Benötigte mathematische Funktionen zur Angabe von Fehlern |
Diese Option gibt dem Compiler an, dass Programme |
Plattform nicht unterstützt |
-fmath-errno |
-fmath-errno |
Plattform nicht unterstützt |
-fmath-errno |
-fmath-errno |
-fmath-errno |
Weitere Optionen
Weitere Optionen | Beschreibung | Compiler-Optionen | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | |||||||||||||||||||
Weitere Optionen für die Übergabe an den Compiler |
Geben Sie weitere Compiler-Optionen ein, die für das aktuelle Projekt hinzugefügt werden sollen. |
||||||||||||||||||||||||
Codeseite |
Legt den Standardzeichensatz für Text fest, der im ANSI-Quellcode verwendet wird, wenn der Quellcode kein BOM (Byte Order Mark) enthält. Bietet Unterstützung für benutzerdefinierte Codeseiten. Damit wird dem Compiler mitgeteilt, wie Multibyte-Zeichensätze (MBCS) analysiert und konvertiert werden sollen. Im Eingabefeld können Sie Folgendes angeben:
Wenn Sie beispielsweise 65001 oder UTF8 für die Option -CP angeben, unterstützt der Compiler die UTF8-Codierung für Quellcode ohne BOM. Es gibt zwei wesentliche Bereiche, wo Codeseiten eine Rolle spielen:
Syntax Aktivieren Sie das Code-Paging mit der folgenden Befehlszeilenoption:
In dieser Syntax ist nnnn der numerische Wert der Codeseite, die für eine bestimmte Gebietseinstellung verwendet werden soll.
Die Vorgabe ist, keine Codeseite zu verwenden. |
-CP |
-finput-charset=0 |
N/A |
-CP |
N/A |
N/A |
N/A | |||||||||||||||||
Ausführungszeichensatz |
Legt den Ausführungszeichensatz fest, der für ANSI-Strings in der ausführbaren Datei verwendet wird. Die Option Ausführungszeichensatz ist für die Verwendung in geräteübergreifenden Anwendungen konzipiert.
In manchen Fällen wird der Wert der Option Codeseite für die Option Ausführungszeichensatz verwendet. Die folgende Matrix verdeutlicht die Beziehung zwischen den Optionen Codeseite und Ausführungszeichensatz:
|
-CE |
-fexec-charset=0 |
N/A |
-CE |
N/A |
N/A |
N/A | |||||||||||||||||
Minimale fortlaufende Blockgröße für Speicherzuweisung |
Gibt die minimale Größe an, die für die fortlaufende Speicherzuweisung verwendet wird. Der Vorgabewert ist (no =nMB). Das bedeutet, dass der größtmögliche Block verwendet wird. Diese Option können Sie beispielsweise zum Compilieren von großen Projekten ohne PCH oder für sehr große (evtl. vom Computer erzeugte) Quelldateien verwenden, solche, die umfangreichen Quelltext enthalten, der zu vielen Deklarationen pro Datei führt. Die Option --savemem weist bcc32 an, so viel wie möglich Platz für den VCH-Arbeitsspeicher zu reservieren. Wenn sich diese Menge ändert, kann bcc32 den vorhandenen VCH-Arbeitsspeicher nicht wiederverwenden und muss einen neuen erstellen. |
--savemem |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
--savemem |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt | |||||||||||||||||
Vorzeichenloser char-Typ |
Der Compiler behandelt die char-Deklarationen so, als würde es sich um einen unsigned char-Typ (vorzeichenloser Zeichentyp) handeln, der für die Kompatibilität mit anderen Compilern sorgt. |
-K |
-funsigned-char |
N/A |
-K |
N/A |
N/A |
N/A | |||||||||||||||||
Universelle iOS-Binärdatei generieren (armv7 + arm64) |
Der Compiler erstellt eine universelle Binärdatei für 32-Bit- und 64-Bit-iOS. |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Quelltextoptionen
Quelltextoptionen | Beschreibung | Compiler-Optionen | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
Verschachtelte Kommentare aktivieren |
Verschachtelt Kommentare in C- und C++-Quelltextdateien. Solche Kommentare sind in Standard-C-Implementierungen nicht zulässig, und sie sind auch nicht portierbar. Der Vorgabewert ist False.
|
-C |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
-C |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Bezeichnerlänge |
Gibt die Anzahl signifikanter Zeichen (jene, die vom Compiler erkannt werden) in einem Bezeichner an. Mit Ausnahme von C++, wo es für Bezeichner keine Längenbeschränkung gibt, werden Bezeichner nur dann als unterschiedlich angesehen, wenn sie sich in den signifikanten Zeichen unterscheiden. Dies betrifft Variablen, Namen von Präprozessor-Makros und Namen von Struktur-Membern. Gültige Werte für die Länge sind 0 und 8 bis 250, wobei 0 die Maximallänge von 250 Zeichen bedeutet. C++Builder unterscheidet standardmäßig 250 Zeichen pro Bezeichner. Andere Systeme (darunter auch einige UNIX-Compiler) ignorieren das neunte und alle folgenden Zeichen. Wenn Sie eine Anwendung auf andere Systeme portieren möchten, sollten Sie den Quelltext mit einer kleineren Anzahl signifikanter Zeichen compilieren. So können Sie Namenskonflikte in langen Bezeichnern aufspüren, die abgeschnitten wurden. Der Vorgabewert beträgt 250. |
-i |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
-i |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
Plattform nicht unterstützt |
String-Optionen
String-Optionen | Beschreibung | Compiler-Optionen | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
Doppelte Strings zusammenführen |
Verbindet zwei literale Strings, wenn einer mit dem anderen identisch ist. Daraus entstehen kleinere Programme, die jedoch etwas mehr Zeit zum Compilieren benötigen. Fehler können dann entstehen, wenn einer der Strings verändert wird. |
-d |
-fmerge-all-constants |
N/A |
-d |
N/A |
N/A |
N/A |
Schreibgeschützte Strings |
Stellt für Strings zugewiesenen Speicher in das schreibgeschützte Datensegment. Der Vorgabewert ist False. |
-dc |
-fconst-strings |
N/A |
-dc |
N/A |
N/A |
N/A |
Schreibbare Strings |
Stellt für Strings zugewiesenen Speicher in das beschreibbare Datensegment. |
-dw |
-fwritable-strings |
N/A |
-dw |
N/A |
N/A |
N/A |
Siehe auch
- C++ (Gemeinsame Optionen)
- BCC32C.EXE
- BCC32.EXE: Der C++-32-Bit-Befehlszeilen-Compiler
- BCC64.EXE: Der C++-Compiler für 64-Bit-Windows
- BCCOSX.EXE: Der C++-Compiler für OS X
- BCCIOSARM: Der C++-Compiler für 32-Bit-iOS-Geräte
- BCCIOSARM64: Der C++-Compiler für 64-Bit-iOS-Geräte
- BCCAARM.EXE: Der C++-Compiler für Android