Anzeigen: Delphi C++
Anzeigeeinstellungen

BCCOSX: Der plattformübergreifende C++-Compiler für OS X

Aus RAD Studio XE2
Wechseln zu: Navigation, Suche

Nach oben zu Befehlszeilenhilfsprogramme - Index


Der pattformübergreifende C++-Compiler für die Macintosh OS X-Plattform ist BCCOSX.EXE. BCCOSX.EXE und BCC32.EXE nutzen dieselbe Codebasis. Für die Erstellung von pattformübergreifenden Anwendungen müssen Sie BCCOSX anstatt BCC32 verwenden.


Inhaltsverzeichnis

BCCOSX und BCC32 sind eng miteinander verknüpft

Im Allgemeinen ist die Verwendung von BCCOSX identisch mit der Verwendung von BCC32.EXE (dem C++-Compiler nur für Windows), außer den folgenden plattformspezifischen Optionen für Mac OS X:

Die beiden Compiler verwenden eine gemeinsame Codebasis, daher unterscheidet sich die Befehlssyntax für den plattformübergreifenden BCCOSX-Compiler nur geringfügig von der Syntax für BCC32.

BCCOSX unterstützt keine strukturierte Exception-Behandlung (das ist Windows-spezifisch).

Befehlszeilensyntax

bccosx [option [option...}] <filename> [<filename>...] 

Der Name des Befehlszeilen-Compilers, alle Optionen und Dateinamen müssen voneinander durch Leerzeichen getrennt sein. Stellen Sie jeder Option entweder einen Bindestrich (-) oder einen Schrägstrich (/) voran. Zum Beispiel:

BCCOSX -Ic:\code\hfiles 

Sie können auch Optionen in Konfigurationsdateien (.CFG) festlegen, die im folgenden Abschnitt, BCCOSX.CFG-Datei, beschrieben werden.

Mit BCCOSX können Sie .O-Dateien an XLINK senden. BCCOSX kann auch Assembler-Code (siehe die Option -S) erzeugen, aber RAD Studio unterstützt keinen Assembler für Mac OS X.

In der Hilfe für die BCCOSX-Befehlszeile finden Sie detaillierte Informationen.

Um die Hilfe für die BCCOSX.exe-Befehlszeile im Befehlsfenster anzuzeigen, geben Sie die Befehlszeilenoption -h ein.

Um beispielsweise eine Liste der gebräuchlichsten Befehlszeilenoptionen anzuzeigen, geben Sie in der Befehlszeile Folgendes ein:

BCCOSX -h 

Die angezeigte Liste weist die Optionen aus, die in der Voreinstellung (*) aktiviert sind:

Embarcadero C++ 6.40 für OS X Copyright (c) 1993-2011 Embarcadero Technologies, Inc.
Verfügbare Optionen (* = Vorgabeeinstellung, xxx = hat Unteroptionen: verwenden Sie -h -X):
(Hinweis: -X- oder -w-XXX macht in der Regel die mit -X oder -wXXX getroffene Festlegung rückgängig.)
 Im Falle eines Konflikts zweier Optionen wird die zuletzt angegebene verwendet.)
--sysroot Das logische Stammverzeichnis für Header, Bibliotheken und Frameworks festlegen
	  (Pfaden, die mit --sysinc oder --syslib angegeben werden, und den -F-Pfaden, die mit
	   '/' beginnen, wird dieser Wert vorangestellt)
--sysinc  Systemsuchpfad für Include-Dateien festlegen
	  (wenn angegeben, wird das Systemstammverzeichnis vorangestellt)
--syslib  Systemsuchpfad für Bibliotheksdateien festlegen
	  (wenn angegeben, wird das Systemstammverzeichnis vorangestellt)
--framework Als Link-Ziel ein Mac OS X-Framework festlegen (z.B. --framework=Carbon)
--savemem Maximale Speichergröße (in MB) für SAVEMEM setzen
	  (Das ist der fortlaufende Speicher, der zum Speichern von globalen Symbolen und
	   ähnlichen Konstrukten zugewiesen wird.  Vorcompilierte Header verwenden diesen Speicher.)
--version Compiler-Version anzeigen
--replacehdr Header-Namen ersetzen (z.B. --replaceHeader=a.h=b.h)
--xrtti   Erweitere RTTI-Informationen erzeugen
  -3      Mit dem geschützten Modus eines 80386-Prozessors kompatible Anweisungen erzeugen
  -4      Mit dem geschützten Modus eines 80386/80486-Prozessors kompatible Anweisungen erzeugen
  -5      Pentium-Anweisungen erzeugen
  -6      Pentium Pro-Anweisungen erzeugen
  -Axxx   ANSI-Konformität aktivieren
  -B      In .ASM (-S) compilieren, dann in .OBJ zusammenstellen
  -Cxxx   Verschachtelte Kommentare aktivieren
  -D      -D<name> definiert 'name' als Null-String; wahlweise lässt sich -D<name>=<wert> verwenden"
  -E      Zu verwendenden Assembler festlegen
  -F      Das angegebene Verzeichnis dem Framework-Header-Suchpfad hinzufügen
	    Zum Beispiel: -F/System/Library/Frameworks;/Library/Frameworks
	    HINWEIS: Wenn --sysroot angegeben ist, wird Pfaden, die mit '/' beginnen, der Wert von --sysroot vorangestellt.
  -G      Größe/Geschwindigkeit optimieren; verwenden Sie stattdessen -O1 und -O2
  -Hxxx   Vorcompilierte Header erzeugen und verwenden
  -I      Suchpfad für Include-Dateien festlegen
  -Jxxx   Optionen für Vorlagenerzeugung
  -K      Vorzeichenlosen Standardzeichentyp setzen
  -L      Suchpfad für Bibliothek
  -M      Linker-Map-Datei erstellen
  -N      Sonstiges (siehe -h -N)
  -Nd     Makros ergeben standardmäßig den Wert "1" (-DX => -DX=1)
  -Nt     GNU __typeof(var)-Unterstützung
  -Nv     void& als gültigen Typ zulassen
  -O      Sprünge optimieren
  -P      C++-Compilierung unabhängig von der Dateierweiterung durchführen
  -Q      Erweiterte Compiler-Fehlerinformationen
  -Rxxx   Browser-Informationen in erzeugte .OBJ-Dateien einbeziehen
  -S      In Assembly compilieren
  -T      Assembler-Option festlegen, z.B. -Tx
  -U      Undefine aller vorherigen Namensdefinitionen
  -Vxxx   Kompatibilität
  -X      Autoabhängigkeitsausgabe des Compilers deaktivieren
  -Zd     Globale Definitionen als DocBook-Spezifikation wie folgt ausgeben: -Zd=<datei>.c
  -Zn     CodeGear-Built-Ins deaktivieren und/oder nicht definieren
  -Zx     Global Definitionen in XML-Datei ausgeben.
	      Unteroptionen:
		-Zx=<dateiname> Nur Typen/Deklarationen in <dateiname> ausgeben
		-Zxf[=dateiname] Member des Basistyps weglassen 
		-Zxm[=dateiname] Makros ausgeben
		-Zxp[=dateiname] Datei- & Zeilenposition ausgeben
  -axxx   Grenzen für Datenausrichtung festlegen.  Vorgabe ist -a8; -a- bedeutet -a1
  -b      -bi aktivieren und Enums für die Typprüfung als Ints behandeln
* -bi     Falls nicht anders angegeben, Größe so erstellen: sizeof(enum x) == sizeof(int)
  -c      Nur in Objektdatei compilieren, nicht linken
  -d      Doppelte Strings zusammenführen
  -dc     Strings in das schreibgeschützte Datensegment stellen
  -dw     Strings in das (beschreibbare) Datensegment stellen
  -e      Zielpfadname für ausführbare Datei festlegen
* -ff     Schnelles Gleitkomma
  -fp     Pentium-sicheres FDIV
* -fq     Stille Gleitkommavergleichsanweisung verwenden (FUCOMP)
  -g      Stapel-Compilierung nach n Warnungen abbrechen (Vorgabe = 255)
  -h      Hilfe anfordern ('-h -' zeigt die gesamte Hilfe an).  Themenspezifisch mit: -h -V
  -i      Maximale signifikante Bezeichnerlänge festlegen (Vorgabe = 250)
  -j      Stapel-Compilierung nach n Fehlern abbrechen (Vorgabe = 50)
* -k      Standard-Stack-Frames erzeugen
  -l      Optionen an den Linker übergeben; Beispiel: -ls -l-x
  -m      Abhängigkeitsinformationen für Make-Datei generieren
  -md     Abhängigkeitsinfo in .d-Dateien aufnehmen, nicht in die Objektdatei
  -mm     System-Header-Dateien beim Erzeugen der Abhängigkeitsinfo ignorieren
  -mo     Ausgabedatei für Abhängigkeitsinfo festlegen
  -n      Ausgabeverzeichnis für Objektdateien festlegen
  -o      Ausgabedateiname festlegen (-o<dateiname> oder —o <dateiname> werden unterstützt)
  -pxxx   Pascal-Aufrufkonvention verwenden
  -q      Identifikationsbanner des Compilers unterdrücken
  -r      Registervariablen verwenden
  -rd     Registervariablen nur verwenden, wenn Registerschlüsselwort eingesetzt wird
  -s      Mit dem nicht-inkrementellen Linker des Systems linken
  -t      Ausführbare Zieldatei angeben
* -u      Unterstriche für Symbolnamen erzeugen
  -vxxx   Quelltext-Debugging aktivieren
  -w      Alle Warnungen anzeigen
  -w!     Bei Warnungen nicht null vom Compiler zurückgeben
  -xxxx   Exception-Behandlung aktivieren
  -y      Zeilennummern für das Debuggen einschalten
  -z      Optionen zur Neudefinition der Standardsegmentnamen
'-h <OPT>' für Hilfe zu einer bestimmten Option oder
    '-h -', um alle verfügbaren Optionen anzuzeigen.

Anzeigen der Hilfe für bestimmte Optionsgruppen, wie -Axxx und -Vxxx

Sie können detaillierte Informationen zu mehrbuchstabigen Optionen, wie -Axxx (Sprachkompatibilität und Standardkomplianz) und -Vxxx (Abwärtskompatibilität) anzeigen.

Verwenden Sie dazu die Befehlszeilenoption -h mit dem Anfangsbuchstaben der Optionsgruppe (z.B. -A für die -Axxx-Optionen). BCC32 zeigt nur die Hilfethemen für die angegebene Optionsgruppe an (z.B. für -Axxx, -Vxxx oder -Wxxx).

Um beispielsweise eine Beschreibung für die Optionen -Axxx (Sprachkompatibilität und Standardkomplianz) anzuzeigen, geben Sie die Befehlszeilenoptionen -h und -A ein:

C:\>bccosx -h -A
Embarcadero C++ 6.40 für OS X Copyright (c) 1993-2011 Embarcadero Technologies, Inc.
Verfügbare Optionen (* = Vorgabeeinstellung, xxx = hat Unteroptionen: verwenden Sie -h -X):
(Hinweis: -X- oder -w-XXX macht in der Regel die mit -X oder -wXXX getroffene Festlegung rückgängig.)
 Im Falle eines Konflikts zweier Optionen wird die zuletzt angegebene verwendet.)
  -A      ANSI-Konformität aktivieren
  -AF     SUN Forte-Schlüsselwörter und -Erweiterungen verwenden
  -AG     GNU-Schlüsselwörter und -Erweiterungen
  -AK     Schlüsselwörter und Erweiterungen von Kernighan und Ritchie (K&R)
  -AT     CodeGear C++-Schlüsselwörter und -Erweiterungen (auch -A-)
  -AU     Schlüsselwörter und Erweiterungen aus UNIX-System V
  -An     C99-Schlüsselwörter und -Erweiterungen
  -Ax     Schlüsselwörter für künftige C++-0x-Erweiterungen reservieren

Im folgenden Beispiel zeigt die BCCOSX-Befehlszeilenhilfe Einzelheiten zu den -Vxxx-Optionen (Abwärtskompatibilität) an:

C:\>bccosx -h -V
Embarcadero C++ 6.40 für OS X Copyright (c) 1993-2011 Embarcadero Technologies, Inc.
Verfügbare Optionen (* = Vorgabeeinstellung, xxx = hat Unteroptionen: verwenden Sie -h -X):
(Hinweis: -X- oder -w-XXX macht in der Regel die mit -X oder -wXXX getroffene Festlegung rückgängig.)
 Im Falle eines Konflikts zweier Optionen wird die zuletzt angegebene verwendet.)
  -V      Kompatibilität
* -VA     Alle globalen Funktionen in ihren eigenen virtuellen/schwachen Segmenten erzeugen
  -VC     Aufrufkonvention nicht zu Symbolen verkürzen
  -VF     MFC-Kompatibilität
  -VF3    MFC 3.2 unterstützen
  -VF4    MFC 4.0 unterstützen
* -VI     Microsoft-Suchalgorithmus zum Suchen von Header-Dateien verwenden
  -VM     Microsoft Visual C++-Kompatibilität
* -VP     PIC-Codegenerierung
  -Va     Klassenargumente im alten Stil unterstützen
  -Vb     Rückwärtskompatibilität mit den Bcc-Versionen 5.8.2 und früher aktivieren
  -Vbc    Referenz zu Referenz nicht ausblenden und qualifizierte Referenzen zulassen
  -Vbe    Explizite Vorlagenspezialisierung im alten Stil zulassen
  -Vbi    C89-Regeln befolgen
  -Vbn    Aufruf einer nicht konstanten oder nicht-volatile Member-Funktion für ein konstantes oder volatile Objekt zulassen
  -Vbo    Alte Borland-Auflösungsregeln für das Überladen verwenden
  -Vbr    Alte Borland-Regeln für Referenzbindung verwenden
  -Vbs    String-Literale als nicht konstant behandeln
  -Vbt    Verwendet alte Borland-Typregeln für dreiteilige Operatoren
  -Vbu    Alte Borland-Regeln für using in Vorlagen verwenden
  -Vbx    Explizite Vorlagenspezialisierung als Member-Funktion zulassen
  -Vc     Konstruktor-Verschiebungen unterstützen
  -Vd     Alte Gültigkeitsbereichsregeln für C++-for-Anweisungen verwenden
  -Ve     Leere Basisklassen mit Länge null
  -Vg     Lexikalischen Digraph-Scanner deaktivieren
  -Vi     Alten 8.3-Suchalgorithmus zum Suchen von Header-Dateien verwenden
  -Vl     Altes Borland-Klassen-Layout verwenden
  -Vm     Member-Zeigeroptionen
  -Vmd    Kleinstmögliche Repräsentation für Member-Zeiger verwenden
  -Vmm    Mehrfachvererbung für Member-Zeiger unterstützen
  -Vmp    Deklarierte Genauigkeit von Member-Zeigern beachten
  -Vms    Einfachvererbung für Member-Zeiger unterstützen
  -Vmv    Keine Beschränkungen dafür einfügen, wohin Member-Zeiger zeigen können
  -Vn     Neue Operatorennamen aktivieren: and, or, and_eq, bitand, etc.
  -Vo     (Fast) alle Kompatibilitäts-Flags setzen; wird mit altem Quelltext verwendet
  -Vp     'this' wie in Pascal zuerst
  -Vr     Reihenfolge für Multizeichenkonstante umkehren
  -Vt     Virtuellen Tabellenzeiger an den Anfang des Objekt-Layouts stellen
  -Vv     'slow' virtuelle Basiszeiger verwenden
  -Vw     Nativen Quelltext anstelle von Unicode für Multibyte-Zeichen ausgeben
  -Vx     Leere Klassenelemente auf 0 setzen


Include-Pfade (-I, --sysinc)

BCCOSX löst die Include-Direktiven durch die Suche nach den angegebenen Dateien in dem Standard-Include-Pfaden gefolgt von den Remote-Include-Pfaden auf.

Remote-Pfade sind relativ zu $(SYSROOT).

$(SYSROOT) ist ein Windows-Verzeichnis, das das logische Stammverzeichnis auf dem Mac OS X-Computer repräsentiert. An diesem Speicherort werden Header-Dateien und dynamische Bibliotheken für die Compilierung und das Linken kopiert (zwischengespeichert) (siehe PAClient.exe).

Die Include-Pfade können mit den folgenden Optionen gesteuert werden:

Option

Include-Pfadtyp

Beschreibung

-I

Standard

Setzt den Standardsuchpfad für Include-Dateien.

--sysinc

Remote

Setzt den Systemsuchpfad für (Remote-)Include-Dateien. $(SYSROOT) wird dem angegebenen Pfad vorangestellt.

Remote-Pfade werden nach der Verarbeitung der Standardpfade verarbeitet.

BCCOSX setzt voraus, dass Include-Direktiven der Form #include </...> (spitze Klammern, Pfade beginnen mit einem Schrägstrich) auf $(SYSROOT) verweisen.

Häufig verwendete Include-Pfade sind in der folgenden Tabelle beschrieben:

Include-Pfadtyp

Pfad

Beschreibung

Standard

$(BDS)\include\osx\crtl

Dieses Verzeichnis enthält die von RAD Studio bereitgestellten C/C++-RTL-Header-Dateien (.h). Einige dieser Dateien enthalten C/C++-Header-Dateien aus $(SYSROOT)\usr\include. Weitere Informationen finden Sie unter C-RTL für OS X.

$(BDS)\include\osx\rtl

Dieses Verzeichnis enthält vom Delphi-RTL-Computer erzeugte Header-Dateien (.hpp).

Remote

$(SYSROOT)\usr\include

Dieses Verzeichnis enthält die auf Windows zwischengespeicherten C/C++-RTL-Header-Dateien für Mac OS X.

Informationen zum Setzen der Include-Pfade aus RAD Studio finden Sie unter C++-Compiler Verzeichnisse und Bedingungen (für Standard-Include-Pfade) und Fenster "Remote-Profile" (für Remote-Include-Pfade).

Bibliothekspfade (-L, --syslib)

Option

Include-Pfadtyp

Beschreibung

-L

Standard

Suchpfad für Bibliotheksdateien.

--syslib

Remote

Suchpfade für Bibliotheksdateien sind relativ zu $(SYSROOT).

Standard-Bibliothekspfade und Remote-Bibliothekspfade werden in der angegebenen Reihenfolge verarbeitet. Sie können daher die Bibliothekssuchpfade durch eine verschachtelte Übergabe der Optionen -L und --syslib an den Compiler steuern.

Systemstamm (--sysroot)

$(SYSROOT) ist ein Verzeichnis auf dem Windows-Computer, das das logische Stammverzeichnis auf dem Remote/Zielcomputer repräsentiert. In diesem Verzeichnis werden Dateien und/oder symbolische Informationen von dem Remote/Zielcomputer zwischengespeichert. Mit dem SYSROOT-Wert sucht BCCOSX.EXE nach den Include- und Bibliotheksdateien.

Mit der Option --sysroot und Angabe des Verzeichnisses auf dem Entwicklungs-PC, in das die lokale Zwischenspeicherung kopiert werden soll, können Sie den Wert für SYSROOT ändern.

Informationen zum Setzen des SYSROOT-Pfades in RAD Studio finden Sie unter Remote-Profile.

Zieloptionen für plattformübergreifende Anwendungen (--txxx)

BCCOSX unterstützt die folgenden plattformübergreifenden Compiler-Optionen für die Angabe des Ziels einer Compilierung (die Befehlszeilenoptionen -txxx):

Um die Befehlszeilenhilfe für die -txxx-Optionen anzuzeigen, geben Sie Folgendes ein: > bccosx -h -t.


Option Beschreibung
  • -t

Ausführbare Zieldatei angeben

  • -tC
  • -tCD
  • -tCDR
  • -tCDV
  • -tCR
  • -tCV
  • Konsolenanwendung
  • Konsolen-DLL
  • Konsolen-DLL, die die dynamische RTL verwendet
  • Konsolen-DLL, die die VCL verwendet
  • Konsolenanwendung, die die dynamische RTL verwendet
  • Konsolenanwendung, die die VCL verwendet
  • -tD

DLL (gemeinsam genutzte Bibliothek) bzw. .dylib auf Mac OS X

  • -tM für Posix
    (oder -WM für Windows)

Multithread-Anwendung

  • -tP

Package

Einige der -t-Optionen werden von BCC32: Der C++-Befehlszeilen-Compiler für 32-Bit-Windows, nicht unterstützt.

BCCOSX.CFG-Datei

Die Konfigurationsdatei für BCCOSX enthält die folgenden Einstellungen für plattformübergreifende Compiler:


-I"C:\Program Files\Embarcadero\RAD Studio\9.0\include\osx";"C:\Program Files\Embarcadero\RAD Studio\9.0\include\osx\crtl";"C:\Program Files\Embarcadero\RAD Studio\9.0\include\osx\rtl"
-I"C:\Program Files\Embarcadero\RAD Studio\9.0\dinkumware"
-L"C:\Program Files\Embarcadero\RAD Studio\9.0\lib\osx32\release"
--syslib=/usr/lib
--sysinc=/usr/include
-F/System/Library/Frameworks

Sie können eine eigene BCCOSX.CFG-Datei erstellen und sie für die Compilierung verwenden. Die benutzerdefinierte BCCOSX.CFG-Datei muss in das aktuelle Verzeichnis, aus dem BCCOSX.EXE aufgerufen wird, kopiert werden.

Siehe auch

Frühere Versionen
In anderen Sprachen