RAD Studio
内容インデックス
前へ上へ次へ
C++ コマンドライン コンパイラ: BCC32

CodeGear C++ コンパイラ(BCC32.EXE)は、リソース コンパイラ シェルです。コマンドライン構文に応じて、BRCC32 および RLINK32 を呼び出します。

bcc32 [オプション [オプション...}] <ファイル名> [<ファイル名>...] 

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

BCC32 -Ic:\code\hfiles 

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

BCC32 を使うと、.OBJ ファイルを ILINK32 に、あるいは .ASM ファイルを TASM32 に(TASM32 がお使いのマシンにインストールされている場合)渡すことができます。

BCC32 構文オプションの詳細情報を確認するコマンドライン ヘルプ

このオンライン ヘルプには、個別のコマンド オプションについて詳細情報が含まれません。コマンドライン ヘルプはコマンド プロンプトで簡単に表示できます。オプション一式のヘルプ トピック(—vxxx—wxxx など)のみ表示するように制限することもできます。  

よく使われるコンパイラ コマンドライン オプションの一覧を表示するには、次のように入力します。 

BCC32 -h  

表示される一覧で * の付いたオプションは、デフォルトで有効になっているオプションです。

C:\>bcc32 -h CodeGear C++ 5.92 for Win32 Copyright (c) 1993, 2007 CodeGear 
有効なオプション (* = デフォルト設定、xxx = サブ オプションあり: -h -X を指定してください):
(メモ: -X- または -w-XXX を指定すると、通常、-X による有効/無効の設定が解除されます。)
  -3      80386 保護モード互換命令を生成する
  -4      80386/80486 保護モード互換命令を生成する
  -5      Pentium 命令を生成する
  -6      Pentium Pro 命令を生成する
  -Axxx   ANSI 準拠を有効にする
  -B      .ASM にコンパイルして (-S) から .OBJ にアセンブルする
  -C      コメントのネストを有効にする
  -CP     コード ページングを有効にする (MBCS の場合)
  -D      -D <name> では 'name' を null 文字列として定義する、または -D<name>=<value> を使用する
  -E      使用するアセンブラを指定する
  -G      サイズと実行速度を最適化する。 -O1 と -O2 を代わりに使用する
  -Hxxx   プリコンパイル済みヘッダーを生成し使用する
  -I      インクルード ファイルの検索パスを設定する
  -Jxxx   テンプレート生成オプション
  -K      デフォルトの文字型を符号なしに設定する
  -L      ライブラリ ファイルの検索パス
  -M      リンカ マップ ファイルを作成する
  -O      ジャンプの最適化
  -P      ソースの拡張子に関係なく C++ コンパイルを実行する
  -Q      拡張コンパイラ エラー情報
  -R      生成された .OBJ ファイルにブラウザ情報を含める
  -RF     シンボルへの参照を検索する
* -RT     実行時型情報を有効にする
  -S      アセンブリ コードにコンパイルする
  -T      アセンブラ オプション (たとえば -Tx) を指定する
  -U      名前の以前の定義をすべて取り消す
  -Vxxx   互換性オプション
  -Wxxx   ターゲットは Windows アプリケーション
  -X      コンパイラに自動依存情報を出力させない
  -axxx   データ アラインメントの境界を設定する。デフォルトは -a8 で -a- は -a1 を意味する
* -b      列挙 (enum) 型を整数型にする (-b- では列挙型を可能な場合 short 型にする)
  -c      オブジェクト ファイルのみコンパイルし、リンクしない
  -d      重複文字列をマージする
  -dc     文字列を読み取り専用データ セグメントに挿入する
  -dw     文字列を (書き込み可能な) データ セグメントに挿入する
  -e      ターゲットの実行形式パス名を指定する
* -ff     高速浮動小数点演算
  -fp     Pentium の FDIV の欠陥を訂正する
* -fq     サイレント モードの浮動小数点比較命令 (FUCOMP) を使用する
  -g      n 回の警告の後でバッチ コンパイルを停止する (デフォルトは 255)
  -h      ヘルプを表示する ('-h -' ではすべてのヘルプを表示する)。-h -V を指定可能
  -i      識別子として認識される最大長を設定する (デフォルトは 250) 
  -j      n 回のエラー発生後にバッチ コンパイルを停止することを指定する (デフォルトは指定なし)
* -k      標準スタック フレームを生成する
  -l      オプションをリンカに渡す (たとえば -ls -l-x)
  -m      メイクファイルの依存情報を生成する
  -md     依存情報をオブジェクト ファイルではなく .d ファイルに保存する
  -mm     依存情報の生成中はシステムヘッダーファイルを無視する
  -mo     依存情報の出力ファイルを指定する
  -n      オブジェクト ファイルの出力ディレクトリを設定する
  -o      出力ファイル名を設定する (-o<ファイル名> または —o <ファイル名> をサポート)
  -pxxx   Pascal の呼び出し規約を使用
  -q      コンパイラ識別バナーを表示しない
  -r      レジスタ変数を使用する
  -rd     register キーワードが使用された場合にのみレジスタ変数を使用する
  -s      システムの非インクリメンタル リンカを使ってリンクする
  -txxx   -Wxxx スイッチの代替名 (差分なし)
* -u      アンダースコアを付けてシンボル名を生成する
  -vxxx   ソース デバッグを有効にする
  -w      すべての警告を表示する
  -w!     警告時にコンパイラから非 0 を返す
  -xxxx   例外処理を有効にする
  -y      デバッグ行番号
  -z      標準セグメント名を再定義するオプション

複数文字オプション(-pxxx や -vxxx など)についてさらに詳しい情報を取得できます。たとえば、-vxxx オプションの説明を表示するには、次のように入力します。 

BCC32 -h -v 

デフォルト設定

BCC32.EXE には、デフォルトでオンになっている特定のオプションがあります。デフォルトのオプションをオフにしたり、設定ファイルのオプションを上書きするには、オプションの後にマイナス記号(-)を付けてください。 

拡張子が .CPP のファイルは C++ ファイルとしてコンパイルされます。拡張子が .C のファイル、拡張子のないファイル、および .CPP、.OBJ、.LIB、.ASM 以外の拡張子を持つファイルは、C ファイルとしてコンパイルされます。 

コンパイラは、実行可能ファイルと同じ名前を持ち、拡張子が .DEF であるモジュール定義ファイルとリンクを試みます。  

一般的なコンパイラ出力オプション  

オプション 
説明 
詳細 
-c  
コンパイルして .OBJ を作成します。リンクは行いません。  
指定された .C、.CPP、.ASM ファイルをコンパイル、アセンブルしますが、出力される .OBJ ファイルのリンクは行いません。  
-e <ファイル名>  
実行可能ファイルの名前を指定します。  
ファイルのリンク時に、実行可能ファイルの名前として <ファイル名> を使用します。このオプションで実行可能ファイルの名前を指定しなかった場合には、リンカは、コマンドに指定された最初のソース ファイルまたはオブジェクト ファイルの名前を元に実行可能ファイルを作成します。  
-l <x>  
オプションをリンカに引き渡します。  
このコマンドライン オプションを指定すると、コンパイル コマンドからリンカに オプション <x> が渡されます。コマンドライン オプション -l-x を指定すると、特定のリンカ オプションを無効にすることができます。  
-M  
MAP ファイルを作成します。  
このコンパイラ オプションを指定すると、マップ ファイルを作成するようリンカに指示することができます。  
-o <ファイル名>  
コンパイルした .OBJ の名前を <ファイル名> にします。  
指定したソース ファイルをコンパイルし、<ファイル名>.OBJ という名前に出力します。  
-P  
C++ コンパイル  
コンパイラは、すべてのソース ファイルを拡張子に関係なく C++ ファイルとしてコンパイルします。-P- を指定すると、すべての .CPP ファイルを C++ ソース ファイルとして、その他のすべてのファイルを C ソース ファイルとしてコンパイルします。
コマンドライン オプション -Pext を指定すると、コンパイラは、すべてのソース ファイルを C++ ファイルとしてコンパイルし、デフォルトの拡張子を ext で指定したものに変更します。このオプションが提供されているのは、C++ コードのデフォルト拡張子として別の拡張子を使用しているプログラマがいるためです。
オプション -P-ext を付けると、ファイルは拡張子を元にコンパイルされ(.CPP は C++ に、それ以外のすべての拡張子は C に)、デフォルトの拡張子が設定されます(.CPP 以外)。  
-tWM  
マルチスレッド対応のターゲットを生成します。  
マルチスレッドの .EXE ファイルまたは .DLL ファイルを作成します。作成しようとしている 32 ビット アプリケーションの種類を指定するモジュール定義ファイル(.DEF ファイル)をコンパイル コマンドやリンク コマンドに含める場合には、このオプションは必要ありません。  

 

コンパイラ オプションの優先規則

コマンドライン コンパイラは、左から右の順にオプションを評価し、以下の規則に沿って処理します。

  • オプションが重複する場合には(オプション -D、-I、-L、-U を除く)、前のものよりも最後のオプションが優先します。
  • コマンドラインで入力されたオプションが、設定ファイルや応答ファイルのオプションよりも優先されます。ただし、-D、-I、-L、-U のオプションは例外で、累積的に使われます。

 

コマンドライン オプションでのディレクトリの指定

CodeGear C++ コンパイラは、インクルード ファイルやライブラリ ファイルを複数のディレクトリから検索することができます。ライブラリ ディレクトリ オプション(-L)やインクルード ディレクトリ オプション(-I)の構文を使うと、#define オプション(-D)と同じように、そのオプションを複数並べて指定することができます。これらのオプションの構文は次のとおりです。

-L <ディレクトリ名> [<ディレクトリ名>;...]
-I <ディレクトリ名> [<ディレクトリ名>;...]

-L および -I のパラメータ <ディレクトリ名> には、任意のディレクトリまたはディレクトリ パスを指定できます。こういった複数のディレクトリをコマンドラインから入力する方法には、次のようなものがあります。

  • 1 つの -L または -I オプションの後に、セミコロンで区切って複数のエントリを並べることができます。 BCC32.EXE —L ディレクトリ名1;ディレクトリ名2;ディレクトリ名3 —I インクルード1;インクルード2;インクルード3 myfile.c
  • 各オプションを複数回、コマンドラインに指定することができます。 BCC32.EXE —L ディレクトリ名1 —L ディレクトリ名2 —L ディレクトリ名3 —I インクルード1 —I インクルード2 —I インクルード3 myfile.c
  • 2 つの方法を混ぜて使うことも可能です。 BCC32.EXE —L ディレクトリ名1;ディレクトリ名2 —L ディレクトリ名3 —I インクルード1;インクルード2 —I インクルード3 myfile.c

コマンドラインに複数の -L または -I オプションを並べると、累積的に扱われます。コンパイラは、並べられたディレクトリを、左から順に、すべて検索します。

コンパイラ設定ファイル(.CFG ファイル)の使い方

ある一揃いのオプションを繰り返して使用するのであれば、毎回コマンドラインで入力するのではなく、設定ファイルに記述することができます。設定ファイルとは、コマンドライン オプションを含む標準の ASCII テキスト ファイルです。各オプションは、スペースで区切るか新しい行として記述します。  

コンパイル コマンドが発行されると必ず、BCC32.EXE は BCC32.CFG という設定ファイルを探します。コンパイラは、まずコンパイル コマンドが発行されたディレクトリで、その次にコンパイラが置かれているディレクトリで .CFG ファイルを探します。  

デフォルトの .CFG ファイルを使う他に、複数の設定ファイルを作成して使うことができます。  

設定ファイルを使用するには、次の構文でコンパイラ オプションを指定します。 

+[パス] ファイル名  

たとえば、次のコマンドラインでは、MYCONFIG.CFG という設定ファイルが使われます。 

BCC32 +C:\MYPROJ\MYCONFIG.CFG mycode.cpp 

コマンドラインでオプションを入力すると、設定ファイルに保存された設定ではなくコマンドライン オプションが使われます。ただし、-D、-I、-L、-U のオプションは例外で、入力したものが先頭に追加されます。

応答ファイルの使い方

応答ファイルを使うと、コンパイラ オプションとファイル名の両方を 1 つのファイルに記述することができます(それに対して、設定ファイルではコンパイラ オプションしか記述できません)。応答ファイルとは、コマンドライン オプションやファイル名を含む標準の ASCII テキスト ファイルです。ファイル内の各エントリは、スペースで区切るか新しい行として記述します。応答ファイルを使うと、コンパイル コマンドを単純化できるだけでなく、ほとんどのオペレーティング システムで許されている以上の長いコマンドラインを発行することができます。  

応答ファイルを 1 つ使う場合の構文は次のようになります。  

BCC32 @[パス] respfile.txt  

複数の応答ファイルを使う場合の構文は次のようになります。  

BCC32 @[パス] respfile.txt @[パス] otheresp.txt  

応答ファイルの拡張子は、通常は .RSP です。  

コマンドラインでオプションを入力すると、応答ファイルのオプションやファイル名ではなくコマンドラインの方が優先されます。ただし、-D、-I、-L、-U のオプションは例外で、入力したものが先頭に追加されます。

Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
このトピックに対する評価をお聞かせください フィードバックを送信