[C++ コンパイラ|拡張]
[C++ コンパイラ] への移動
[プロジェクト|オプション...|C++ コンパイラ|拡張]
このダイアログ ボックスを使用して、C++ コンパイラのコンパイル拡張オプションを設定します。
オプション | 説明 |
---|---|
[ターゲット]、[適用...]、[保存...] |
「[ターゲット]オプション」を参照。 |
共通項目 |
[アセンブラ オプション]
[アセンブラ オプション] | 説明 | コンパイラ スイッチ | ||||
---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bcciosarm64 | bccaarm | ||
[アセンブラ オプション] |
現在のプロジェクトに追加するアセンブラ オプション( 32 ビット用 Clang 拡張コンパイラは、TASM32 とアセンブルできるアセンブリ ファイルは生成しません。 |
N/A | プラットフォーム未サポート | プラットフォーム未サポート | プラットフォーム未サポート | |
[.ASM にコンパイルしてから .OBJ にアセンブルする] |
コンパイラは、C++(または C)ソース コードから .ASM ファイルをまず生成します(-S コマンドライン オプションと同様)。 次に、TASM32(または[使用するアセンブラを指定]で指定されたアセンブラ)を呼び出して、.ASM ファイルから .OBJ ファイルを生成します。.ASM ファイルはそのあと削除されます。 アセンブリのキーワードになっている静的グローバル変数が C または C++ ソース コードで宣言されている場合、プログラムは、-B オプションを付けてコンパイルできません。これは、コンパイラが(他の変数の場合とは異なり)静的グローバル変数の先頭にアンダースコアを付けず、その結果、コードのアセンブル時にアセンブリ キーワードが原因でエラーが発生するためです。デフォルト値は[false]です。 |
.ASM にコンパイル |
N/A |
N/A |
N/A |
N/A |
[使用するアセンブラを指定] |
指定されたファイル名のアセンブラを使って、命令をアセンブルします。32 ビット Windows 版コンパイラでは、TASM32 をデフォルト アセンブラとして使用します。 ポップアップ ボタンについては、「[<プロジェクト名> のプロジェクト オプション]ページの共通項目」で説明されています。 |
-E |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
[浮動小数点演算]オプション
[浮動小数点演算]オプション | 説明 | コンパイラ スイッチ | ||||
---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bcciosarm64 | bccaarm | ||
[FDIV の不具合を修正] |
初期の Pentium では、特定の浮動小数点除算を正確に実行できないチップがあります。この問題に直面することはめったにありませんが、このオプションを使用すると、浮動小数点数演算をエミュレートするコードが挿入されて、正確な演算結果が保証されます。このオプションをオンにすると、プログラムの FDIV 命令の性能が低下します。このオプションは、FDIV 命令を補正する必要があるモジュールに対してのみ使用してください。ランタイム ライブラリでも FDIV 命令は使用されていますが、このオプションによって補正の有無は変更されません。ランタイム ライブラリを補正するには、このオプションを使って該当するランタイム ライブラリを再コンパイルします。 このオプションを使用する場合、次の関数は、補正されていないアセンブリ言語で FDIV 命令を使用します。
また、このスイッチは、浮動小数点数と文字列の間の変換を行う関数(printf や scanf など)の補正は行いません。 |
-fp |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
[高速浮動小数点演算] |
明示的な型変換か暗黙の型変換かに関係なく、浮動小数点数演算が最適化されます。これにより、浮動小数点数演算が ANSI のオペレーティング モードより速くなります。 このオプションの目的は、C の本来の意味に反した技術を使って最適化を認めることにあります。 double x; x = (float) (3.5*x);
これを正しく実行するには、x に 3.5 を掛けて、float 精度に切り捨てられた double を算出し、次に double として x に格納します。 高速実数演算では、long double 値が直接 double に変換されます。 サイズの小さな浮動小数点への受け渡しで生じる桁落ちによって動作が異なるプログラムはまれなので、このオプションがデフォルトになっています。 このオプションのチェックをはずすと(-ff-)、コンパイラは浮動小数点の変換に関して、ANSI の規約に忠実に従い、浮動小数点数演算を行います。 |
-ff |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
[浮動小数点比較をサイレント モードで実行] |
サイレント モードの浮動小数点命令(FUCOMP)を使用します。 デフォルト値は[true]です。 |
-fq |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
[Required math functions to indicate errors] |
このオプションはコンパイラに、プログラムが標準数学ライブラリ関数への呼び出し後に、確実に |
プラットフォーム未サポート |
-fmath-errno |
-fmath-errno |
-fmath-errno |
-fmath-errno |
[その他のオプション]
[その他のオプション] | 説明 | コンパイラ スイッチ | ||||
---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bcciosarm64 | bccaarm | ||
[コンパイラに渡す追加オプション] |
現在のプロジェクトに追加するコンパイラのオプションを入力します。 |
|||||
[コード ページ] |
ソース コードに BOM(バイト オーダー マーク)が含まれていない場合に ANSI ソース コードで使われる、デフォルトのテキスト文字セットを設定します。 これにより、ユーザー定義のコード ページをサポートできるようになります。このオプションは、主に、マルチバイト文字列(MBCS)を構文解析および変換する方法をコンパイラに指示するために使用します。 入力フィールドには次のいずれかを指定することができます。
たとえば、-CP オプションに 65001 または UTF8 を指定すると、コンパイラでは BOM を持たないソース コードに対して UTF8 エンコーディングをサポートします。 コード ページが有効になる範囲は以下の 2 つです。
構文 次のコマンドライン オプションを使ってコード ページを可能にします。
この構文で、nnnn は、特定のロケールに使用するコードページの数値です。
デフォルトではコード ページは使用されません。 |
-CP |
-finput-charset=0 |
N/A |
N/A |
N/A |
[実行文字セット] |
実行文字セットを設定します。これは実行可能ファイルの ANSI 文字列で使われます。 [実行文字セット]オプションは、マルチデバイス アプリケーションで使うように設計されたものです。 実行文字セットに「932」を指定してアプリケーションをコンパイルすると、すべての文字列リテラルが、コンパイル時の環境が「932」がどうかに関係なく、「932」(日本語 SJIS)エンコーディングでコンパイルされます。ワイド文字列リテラル(L"Test" など)はこのオプションの影響を受けません。 場合によっては、[コード ページ]オプションの値が[実行文字セット]オプションに使われます。次の表は、[コード ページ]オプションと[実行文字セット]オプションの関係を表したものです。 |
-CE |
-fexec-charset=0 |
N/A |
N/A |
N/A |
[連続したメモリ割り当てブロックの最小サイズ (MB 単位)] |
連続したメモリ割り当てに使用する最小サイズを指定します。 デフォルトは(no =nMB)で、これは使用可能な最大のチャンクを使用するという意味です。 たとえば、PCH を使用していない大規模なプロジェクトをコンパイルする場合や、非常に大きな(おそらくは自動生成された)ソース ファイル、数多くのソースがインクルードされていてファイルごとの宣言数が多くなったファイルを扱う場合などに、このオプションを設定すると有益です。 --savemem オプションは、PCH メモリを可能な限り領域を確保するよう、bcc32 に依頼します。そしてこのサイズが変わった場合、bcc32 は既存の PCH を再利用できないため、新しいものを再ビルドしなければなりません。 |
--savemem |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
[unsigned char 型] |
コンパイラは、char 宣言を unsigned char 型であるかのように処理します。これにより、他のコンパイラとの互換性が提供されます。 |
-K |
-funsigned-char |
N/A |
N/A |
N/A |
[iOS ユニバーサル バイナリ ファイルの生成 (armv7 + arm64)] |
コンパイラは、32 ビットと 64 ビット両方の iOS 用ユニバーサル バイナリ ファイルを作成します。 |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
[ソース]オプション
[ソース]オプション | 説明 | コンパイラ スイッチ | ||||
---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bcciosarm64 | bccaarm | ||
[コメントのネストを有効にする] |
C および C++ のソース ファイルでコメントをネストさせます。標準の C ではコメントをネストすることはできないため、移植性はありません。 デフォルト値は[false]です。 メモ: 条件コンパイル指令を使用すると、コメントを含む大きなコード ブロックを "コメント化" することができます。
#if 0
// ...
/* ... */
#endif
|
-C |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
[識別子の長さ] |
識別子の中の有効文字数(コンパイラで識別される先頭からの文字数)を指定します。C++ が識別する長さには制限がありませんが、それ以外ではすべての識別子は、最初の有効文字数がユニークであれば別個の識別子として扱われます。識別子には、変数、プリプロセッサ マクロ名、構造体メンバ名があります。 長さの値として有効なものは 0 および 8 ~ 250 です。0 を入力すると、識別子の長さの上限である 250 が設定されたものとみなされます。C++Builder のデフォルトでは、識別子ごとに 250 文字(バイト)までを使用します。UNIX コンパイラも含めた他のシステムでは、8 文字までしか認識しないものが数多くあります。このような環境へ移植するときは、識別される文字数を少なくしてコンパイルした方がよい場合もあります。この方法でコンパイルすれば、長い識別子の中に指定した文字数の範囲内で名前の重複がないかをチェックできます。デフォルト値は[250]です。 |
-i |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
プラットフォーム未サポート |
[文字列]オプション
[文字列]オプション | 説明 | コンパイラ スイッチ | ||||
---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bcciosarm64 | bccaarm | ||
[重複文字列をマージ] |
2 つのリテラル文字列の一方が他方と一致する場合、2 つをマージします。 これにより、プログラムは小さくなりますが(コンパイル時間が少し長い)、一方の文字列を修正するとエラーになることがあります。 |
-d |
-fmerge-all-constants |
N/A |
N/A |
N/A |
[読み取り専用文字列] |
文字列を読み取り専用データ セグメントに挿入します。デフォルト値は[false]です。 |
-dc |
-fconst-strings |
N/A |
N/A |
N/A |
[書き込み可能な文字列] |
文字列を書き込み可能なデータ セグメントに挿入します。 |
-dw |
-fwritable-strings |
N/A |
N/A |
N/A |