BCC32 のコマンドラインオプション

2000-03-05
修正・追加 2000-03-06

手持ちの BCB 1.01(BCC 5.2)ならびに BC3.1J (これは 16bit 版)のヘルプを元にしている。 これ以降に追加/変更/削除されたオプションについては一切関知しない。 (ついでに言うと、すべてのオプションを網羅してあるわけでもない)
当然、基本的に無保証。 あしからず。

てゆうか bcc55 のフリー版に入ってるヘルプだとオプションの説明がサッパリ出ねえ。 たぶんアップデート用のでっかいヘルプを落とせば入ってるんだろうけど、ちょっとそれは…。

BCC32

オプション 説 明
@response_file レスポンスファイル指定。
+cfg_file 環境設定ファイル指定。 (デフォルトは bcc32.cfg)
-3 386 用コード生成。
-4 486 用コード生成。
-5 Pentium 用コード生成。
-6 Pentium Pro 用コード生成。
-A ANSI 準拠の予約語のみ使用。
-AK K&R 準拠の予約語のみ使用。
-AT Borland の予約語を使用。
-A- -AT と同じ。
-AU UNIX system V 準拠の予約語のみ使用。
-a- バイト単位でアラインメント。 (デフォルト)
-a ワード単位でアラインメント。
-anum num バイト単位でアラインメント。
num には 1, 2, 4, 8, 16 が指定可能。
-B .ASM 形式で出力し、アセンブラを起動して .obj を生成。 -E オプション、-S オプションを参照)
-b 列挙 (enum) 型を int にする。 (デフォルト)
-b- 列挙 (enum) 型を可能ならバイト型にする。
-C- コメント(/* 〜 */)のネスティング無効。 (デフォルト)
-C コメントのネスティング有効。
-CPcodepage 文字列のコードページ指定。
codepage は10進数のコードページ値。
(例:932 = 日本語437 = 米国英語
-c コンパイル(obj 生成)のみ。
-Dsymbol 文字列定義。
#define symbol 相当。
-Dsymbol=value 文字列定義。
#define symbol value 相当。
-d- 内容の同じ文字列でもひとまとめにしない。 (デフォルト)
-d 内容の同じ文字列をひとまとめにする。
-Efilename アセンブル時に使用するアセンブラ名を指定。
デフォルトは(たぶん) -Etasm32.exe
-eexename 作成する実行ファイル名を指定。
-f 浮動小数点演算の使用。
-f- 浮動小数点演算を使用しない。
(浮動小数点演算ライブラリをリンクしない)
-ff- 高速実数演算モードを使用しない。 (デフォルト)
ANSI 規則に従い、厳密に実数型変換を行う。
-ff 高速実数演算の使用。
-fp Pentium の FDIV 回避。
-gnum num 個の Warning でコンパイル中断。
デフォルトは -g100
-H プリコンパイルヘッダ使用。 (デフォルト)
-H- プリコンパイルヘッダを使用しない。
-H=filename filename という名前でプリコンパイルヘッダを生成、使用。
-H"headername" headername を #include した時点でプリコンパイル停止。
(これってどう指定すればいいの?)
-Hc プリコンパイルヘッダをキャッシュする。
(詳しい説明がほとんどないのでよくわからんが、たぶん一時的にメモリに確保するんだと思う。 ユーザーズガイドの「C++Builder のコンパイル時間の最適化」あたりを参照)
-He 外部ファイルを使ってプリコンパイルヘッダを使用可能にする。
(詳細不明。ヘルプのどこを見ればいいですか?)
-Hs スマートキャッシュしたプリコンパイルヘッダを使用可能にする。
(詳細不明)
-Hu プリコンパイルヘッダを生成しないが、すでに存在すれば利用する。
(プリコンパイルヘッダ名を指定したい場合は、-H=filename と共に使えばいいようだ)
-Ipath include パスの追加。
-inum 識別子(変数名、関数名その他)を、num 文字分の長さまで認識する。
デフォルトは -i250
-Jg すべてのテンプレートインスタンスの定義を生成し,重複した定義をひとつにまとめる。 (デフォルト)
-Jgd すべてのテンプレートインスタンスをパブリック定義。
-Jgx すべてのテンプレートインスタンスを、外部参照として定義。
-jnum num 個の Error でコンパイル中断。
デフォルトは -j25
-K- デフォルト文字型は signed char。 (デフォルト)
-K デフォルト文字型は unsigned char。
-k 標準スタックフレーム生成。 (デフォルト)
-k- 標準スタックフレームを生成しない。
-Lpath リンク時のライプラリサーチパスを指定。
-llinker_opt リンカにオプションを渡す。
用例:
bcc32 -lt foo.c
リンカ ilink32 に -t オプションが渡される。
-l-linker_opt リンカへのオプションを抑止。
-M リンク時にマップファイル生成。
-npath ファイル出力パスを指定。
-O1 サイズ重視の最適化。
-O2 実行速度重視の最適化。
-Oc 基本ブロック中の重複式を削除。
-Od すべての最適化オプションを無効化。
-Oi 関数のインライン展開。
-OS 命令のスケジューリング。
-Ov ループ内誘導変数と計算量の最適化。
-Ox (たぶん)-O1 と同じ。
-Oxt (たぶん)-O2 と同じ。
-oobjname 作成する obj ファイル名を指定。
-P- 拡張子が .cpp のソースは C++ として、.c のソースは c としてコンパイルする。 拡張子が無指定の場合は .cpp とみなす。 (デフォルト)
-P すべてのソースを C++ のソースとみなす。 拡張子が無指定の場合は .cpp とみなす。
-Pext すべてのソースを C++ のソースとみなす。 拡張子が無指定の場合は ext とみなす。
例:
bcc32 -Pcxx foo bar.c baz.cpp
foo.cxx, bar.c, baz.cpp を C++ のソースとしてコンパイルする。
-P-ext 拡張子が .cpp のソースは C++ として、それ以外は c としてコンパイルする。 拡張子が無指定の場合は ext とみなす。
-p- 関数コール時に、Cの呼出規約 (__cdecl) を使う。 (デフォルト)
-p 関数コール時に、PASCAL の呼出規約 (__pascal) を使う。
-pc -p- と同じ。
-po fastthis 呼出規約を使う。
(C++ の this ポインタをレジスタで渡す)
-pr fastcall 呼出規約 (__fastcall) を使う。
(引数をレジスタで渡す)
-ps stdcall 呼出規約 (__stdcall) を使う。
-R obj ファイル中に、オブジェクトブラウザ用の情報を含める。
-RT 実行時型情報を有効にする。 (デフォルト)
-RT- (たぶん)実行時型情報を無効にする。
-r レジスタ変数を使う。 (デフォルト)
-r- レジスタ変数を使わない。
-rd register 宣言された変数のみ、レジスタ変数の使用を許可する。
-S アセンブラソース出力。
-Tasm_opt アセンブラにオプションを渡す。
-T- すでに指定されているアセンブラオプションを無効化。
-ttarget_opt ターゲット指定。
詳細は以下参照。 というかくわしい説明がヘルプにないのでよくわからん。
-tWC Win32 コンソールモード用アプリケーション作成。 (デフォルト)
-tW- -tWC と同じらしい。
-tW Win32 GUI モード用アプリケーション作成。
-tWE Win32 GUI モード用アプリケーション作成。
(16bit 時代は -W-WE でいちおう違いがあったけど、今時はどうなんですかね。よくわからん)
-tWD Win32 DLL 作成。
-tWDE Win32 DLL 作成。
-W, -WE あたりと対応関係は同じだと思う)
-tWM マルチスレッド対応。
-Usymbol 文字列定義の抹消。
#undef symbol 相当。
-u グローバル識別子の先頭にアンダーラインを付加。 (デフォルト)
-u- グローバル識別子の先頭にアンダーラインを付加しない。
-V スマート C++ 仮想テーブル。 (デフォルト)
-V0 C++ 仮想テーブルを外部参照として生成。
-V1 C++ 仮想テーブルをパブリック定義。
-Vd for ループ変数のスコープ指定。
-Ve 空の基本クラスの長さをゼロにする。
-VF MFC との互換性考慮。
-Vl 旧バージョンとの互換性考慮。
派生クラスのレイアウトを、旧版の Borland C++ と同じ方法で行う。
-v- デバッグ情報オフ、インライン展開有効。
(たぶんデフォルト)
-v デバッグ情報オン、インライン展開禁止。
-vi インライン展開有効。
-vi- インライン展開禁止。
-w Warning の表示。
(たぶんデフォルト)
-w- Warning を表示しない。
-w! コンパイル中に Warning が出た場合、戻り値として 0 以外の値を返す。
-wwarn_type warn_type の警告を有効にする。
-w-warn_type warn_type の警告を無効にする。
-X- ファイル依存関係情報の生成。 (デフォルト)
-X ファイル依存関係情報を生成しない。
-x 例外処理有効。 (デフォルト)
-xd デストラクタ有効。 (デフォルト)
-xdg グローバルデストラクタカウンタを使う。
(旧版との互換性。このオプションを指定すると Warning W8035 が出る)
-xf 高速例外処理の使用。
-xp 例外発生位置情報の生成。
-y 行番号情報の生成。
-zAclass_name コードセグメントのクラス名指定。
-zBclass_name 未初期化データセグメント (BSS) のクラス名指定。
-zCseg_name コードセグメント名指定。
-zDseg_name 未初期化データセグメント (BSS) 名指定。
-zGdgroup_name 未初期化データセグメント (BSS) のグループ名指定。
(たぶん、-zS で指定するグループ名と同じ名前にしないと無意味)
-zRseg_name データセグメント名指定。
-zSdgroup_name データセグメントのグループ名指定。
-zG 参照)
-zTclass_name データセグメントのクラス名指定。

その他: