BCCOSX.EXE - OS X 用 C++ コンパイラ

提供: RAD Studio
移動先: 案内検索

コマンドライン ユーティリティ:インデックス への移動


BCCOSX.EXEBCCOSX(Mac OS X 向けの C++ コンパイラ)のコマンドライン インターフェイスです。

BCC32 と関連が深い BCCOSX

一般に、BCCOSX を使用することは、BCC32.EXE (Windows 専用の C++ コンパイラ)を使用することと同じです。ただし、次の Mac OS X プラットフォーム固有のオプションを除きます。

2 種類のコンパイラは、1 つのコード ベースを共有しています。したがって、BCCOSX クロス コンパイラ用コマンド構文は、BCC32 用構文と違いはほとんどありません。

BCCOSX では、構造化例外処理(Windows 固有)をサポートしていません。

コマンドライン構文

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

コマンドライン コンパイラ名、各オプション、ファイル名は、スペースで区切ります。各オプションの前には、ハイフン(-)またはスラッシュ(/)を付けます。以下はその例です。

BCCOSX -Ic:\code\hfiles

また、オプションを構成ファイル(.CFG)に指定することもできます。これについては、後のセクション「BCCOSX.CFG ファイル」で説明します。

BCCOSX を使用して、.O ファイルを XLINK に渡すこともできます。BCCOSX はアセンブラ コードも生成できますが(-S オプションを参照)、Mac OS X 用アセンブラ コードは生成できません。

詳細情報を確認するための BCCOSX コマンドライン ヘルプ

[RAD Studio コマンド プロンプト]ウィンドウで BCCOSX.exe コマンドライン ヘルプを表示するには、-h コマンドライン オプションを指定します。


bccosx -h

特定オプションとグループ(-Axxx、-Vxxx など)のヘルプの表示

各複数文字オプション -Axxx (言語の互換性と標準への準拠)や -Vxxx (下位互換性)などについてさらに詳しい情報を取得できます。

これを実行するには、-h コマンド ライン オプションをオプション グループの最初の文字に使用します(-Axxx オプションを指定するには -A を使用するなど)。BCCOSX によりオプションの指定セットに対するヘルプ トピックのみが表示されます(-Axxx-Vxxx-Wxxx など)。

たとえば、-Axxx (言語の互換性と標準への準拠)オプションの説明を表示するには、-h-A コマンド ライン オプションを使用します。

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

次の例の BCCOSX コマンドライン ヘルプでは、すべての -Vxxx (下位互換性)オプションについて詳細を表示します。

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



インクルード パス(-I--sysinc

BCCOSX でのインクルード指令の解決は、標準インクルード パスと続くリモート インクルード パスで指定ファイルを検索することによって実現します。

リモート パスは $(SYSROOTからの相対パスです。


$(SYSROOT) は Windows のディレクトリで、Mac OS X マシンの論理ルートを表わします。この場所にコンパイルとリンクに必要なヘッダー ファイルとダイナミック ライブラリがコピー(キャッシュ)されます(「PAClient.exe」を参照)。

インクルード パスは、以下のオプションで制御します。

オプション

インクルード パスの種類

説明

-I

標準

標準インクルード ファイルの検索パスを設定します。

--sysinc

リモート

システム(リモート)インクルード ファイルの検索パスを設定します。$(SYSROOT) が指定パスの先頭に付加されます。

リモート パスは、標準パスの後で処理されます。

BCCOSX では、インクルード指令は #include </...>(山かっこ、スラッシュで始まるパス)という形式で、$(SYSROOT) の場所を参照することを想定しています。

共通で使用されるインクルード パスを次の表に示します。

インクルード パスの種類

パス

説明

標準

$(BDS)\include\osx\crtl

このディレクトリには、RAD Studio 付属の C/C++ RTL ヘッダー ファイル(.h)が含まれます。これらのファイルの一部には、$(SYSROOT)\usr\include の C/C++ ヘッダー ファイルがあります。詳細については、「OS X C RTL」を参照してください。

$(BDS)\include\osx\rtl

このディレクトリには、Delphi RTL マシン生成ヘッダー ファイル(.hpp)が含まれます。

リモート

$(SYSROOT)\usr\include

このディレクトリには、Windows にキャッシュされた C/C++ RTL の Mac OS X ヘッダー ファイルが含まれます。

RAD Studio からインクルード パスを設定するには、「C++ コンパイラ ディレクトリと条件定義」(標準インクルード パスの場合)および「SDK マネージャ」(SDK インクルード パスの場合)を参照してください。

ライブラリ パス(-L--syslib

オプション

インクルード パスの種類

説明

-L

標準

ライブラリ ファイルの検索パスです。

--syslib

リモート

ライブラリ ファイルの検索 パスは $(SYSROOTからの相対パスです。

標準ライブラリ パスとリモート ライブラリ パスは指定順に処理されます。したがって、ユーザーのライブラリ検索パスを制御するために、コンパイラに対する -L および --syslib オプションを任意の順序で指定できます。

システム ルート(--sysroot

SYSROOT は Windows マシン上のディレクトリで、リモート/ターゲット マシンの論理ルートを表わします。このディレクトリは、リモート/ターゲット マシンにある、ファイルやシンボル情報がキャッシュされる場所です。SYSROOT 値は、インクルード ファイルとライブラリ ファイルを検索するために BCCOSX.EXE で使用します。

SYSROOT 値を変更するには、--sysroot オプションを使用し、ローカル キャッシュをコピーする対象の開発用 PC にあるディレクトリを指定します。

SYSROOT パスを RAD Studio から設定するには、「SDK マネージャ」を参照してください。

マルチデバイス アプリケーションのターゲット オプション(--txxx

BCCOSX では、コンパイル ターゲットを指定する、次のコンパイラ オプションをサポートします(-txxx コマンドライン オプション)。

-txxx オプションのコマンドライン ヘルプを表示するには、> bccosx -h -t と入力します。

オプション 説明
  • -t

ターゲットの実行可能ファイルを指定する

  • -tC
  • -tCD
  • -tCDR
  • -tCDV
  • -tCR
  • -tCV
  • コンソール アプリケーションがターゲット
  • コンソール DLL がターゲット
  • ダイナミック RTL を使用するコンソール DLL がターゲット
  • VCL を使用するコンソール DLL がターゲット
  • ダイナミック RTL を使用するコンソール アプリケーションがターゲット
  • VCL を使用するコンソール アプリケーションがターゲット
  • -tD

DLL(共有ライブラリ)がターゲット(Mac OS X では .dylib

  • Posix で -tM
    (または Windows で -WM

マルチスレッド アプリケーションがターゲット

  • -tP

パッケージがターゲット

-t オプションの一部は、32 ビット Windows の場合、BCC32.EXE、C++ 32 ビット コマンドライン コンパイラでサポートされていません。

BCCOSX.CFG ファイル

BCCOSX 用の構成ファイルには、次のクロス コンパイラ用設定が含まれます。

-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

独自の BCCOSX.CFG ファイルを作成し、コンパイルに使用できます。カスタムの BCCOSX.CFG ファイルは、BCCOSX.EXE の呼び出し元である、現在のディレクトリに配置する必要があります。

関連項目