BCCOSX.EXE: Der C++-Compiler für OS X

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Befehlszeilenhilfsprogramme - Index


BCCOSX.EXE ist eine Befehlszeilenoberfläche für BCCOSX, dem C++-Compiler für Mac OS X.

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 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 ein Assembler für Mac OS X wird nicht unterstützt.

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.


bccosx -h

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 for OS X Copyright (c) 1993-2011 Embarcadero Technologies, Inc.
Available options (* = default setting, xxx = has sub-options: use -h -X):
(Note: -X- or -w-XXX will usually undo whatever was set or unset by -X or -wXXX.
 If two options conflict, the last one specified will be used.)
  -A      Enable ANSI conformance
  -AF     Use SUN Forte keywords and extensions
  -AG     Use GNU keywords and extensions
  -AK     Use Kernighan and Ritchie (K&R) keywords and extensions
  -AT     Use CodeGear C++ keywords and extensions (also -A-)
  -AU     Use UNIX System V keywords and extensions
  -An     Use C99 keywords and extensions
  -Ax     Reserve keywords for future C++-0x extensions

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

C:\>bccosx -h -V
Embarcadero C++ 6.40 for OS X Copyright (c) 1993-2011 Embarcadero Technologies, Inc.
Available options (* = default setting, xxx = has sub-options: use -h -X):
(Note: -X- or -w-XXX will usually undo whatever was set or unset by -X or -wXXX.
 If two options conflict, the last one specified will be used.)
  -V      Compatibility options
* -VA     Generate all global functions in their own virtual/weak segment
  -VC     Do not mangle calling convention into symbols
  -VF     MFC compatibility
  -VF3    Support MFC 3.2
  -VF4    Support MFC 4.0
* -VI     Use Microsoft search algorithm to locate header files
  -VM     Microsoft Visual C++ compatibility
* -VP     PIC code generation
  -Va     Support old-style class arguments
  -Vb     Enable backward compatability with Bcc versions 5.8.2 and earlier
  -Vbc    Don't collapse reference to reference and allow qualified references
  -Vbe    Allow old-style explicit template specialization
  -Vbi    Follow C89 rules for immediates
  -Vbn    Allow calling of non-const or non-volatile member function for a const or volatile object
  -Vbo    Use old Borland overload resolution rules
  -Vbr    Allow old Borland rules for reference binding
  -Vbs    Treat string literals as non-const
  -Vbt    Use old Borland type rules for ternary operators
  -Vbu    Use old Borland rules for using in templates
  -Vbx    Allow explicit template specialization as a member function
  -Vc     Support constructor displacements
  -Vd     Use old C++ for-statement scoping rules
  -Ve     Zero-length empty base classes
  -Vg     Disable lexical digraph scanner
  -Vi     Use old 8.3 search algorithm to locate header files
  -Vl     Use old Borland class layout
  -Vm     Member pointer options
  -Vmd    Use the smallest possible representation for member pointers
  -Vmm    Support multiple inheritance for member pointers
  -Vmp    Honor declared precision of member pointers
  -Vms    Support single inheritance for member pointers
  -Vmv    Place no restrictions on where member pointers can point
  -Vn     Enable new operator names: and, or, and_eq, bitand, etc.
  -Vo     Set (almost) all compatibility flags; used with old code
  -Vp     Push 'this' first, as does Pascal
  -Vr     Reverse order for Multi-character constant
  -Vt     Put virtual table pointer at front of object layout
  -Vv     Use 'slow' virtual base pointers
  -Vw     Emit native code instead of Unicode for multi-byte character
  -Vx     Zero-length empty class members


Include-Pfade (-I, --sysinc)

BCCOSX löst die Include-Direktiven durch die Suche nach den angegebenen Dateien in den 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

Legt den Standardsuchpfad für Include-Dateien fest.

--sysinc

Remote

Legt den Systemsuchpfad für (Remote-)Include-Dateien fest. $(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 von der Delphi-RTL erzeugte Header-Dateien (.hpp).

Remote

$(SYSROOT)\usr\include

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

Informationen zum Festlegen der Include-Pfade aus RAD Studio finden Sie unter C++-Compiler Verzeichnisse und Bedingungen (für Standard-Include-Pfade) und SDK-Manager (für SDK-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 vom 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 Festlegen des SYSROOT-Pfades aus RAD Studio finden Sie unter SDK-Manager.

Zieloptionen für geräteübergreifende Anwendungen (--txxx)

BCCOSX unterstützt die folgenden geräteü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) (.dylib unter Mac OS X)

  • -tM unter Posix
    (oder -WM unter Windows)

Multithread-Anwendung

  • -tP

Package

Einige der -t-Optionen werden von BCC32.EXE, dem C++-32-Bit-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 (x86)\Embarcadero\Studio\16.0\include\osx";"C:\Program Files (x86)\Embarcadero\Studio\16.0\include\osx\crtl";"C:\Program Files (x86)\Embarcadero\Studio\16.0\include\osx\rtl"
-I"C:\Program Files (x86)\Embarcadero\Studio\16.0\dinkumware"
-L"C:\Program Files (x86)\Embarcadero\Studio\16.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