コンパイラー・オプションの説明および一般的な規則

このセクションでは、現在のすべての Linux*、Mac OS* X、Windows* コンパイラー・オプションについて、アルファベット順に説明します。

オプションの説明

各オプションの説明には、次の情報が含まれています。

オプションの説明には次の項目が含まれるものもあります。

コンパイラー・オプションの一般的な規則

複数のオプションを 1 つのダッシュ (Linux および Mac OS X) またはスラッシュ (Windows) だけで指定することはできません。次に例を示します。

一部のコンパイラー・オプションでは、大文字と小文字が区別されます。例えば、-c (または /c) と -C (または /C) は 2 つの異なるオプションです。

すべてのコンパイラー・オプションは、大文字と小文字を区別します。 一部のオプションは、大文字と小文字では意味が異なります。例えば、"c" オプションはリンクを抑止しますが、"C" オプションは前処理済みのソース出力の中にコメントを書き込みます。

コマンドラインで指定されたオプションは、すべてのファイルに適用されます。

オプションの引数は、ファイル名、文字列、文字、または数字です。文字列に空白が含まれている場合、文字列を二重引用符 (") で囲む必要があります。次に例を示します。

コンパイラー・オプションは任意の順番で指定できます。

Windows システムでは、すべてのコンパイラー・オプションはコマンドラインで /link オプションの前に指定しなければなりません (該当する場合)。

特定のオプションを指定しなければ、コマンドラインは指定されたファイルに対してコンパイルとリンクの両方を行います。

オプションを一意に識別できるだけの文字数を入力すれば、いくつかのオプション名は短縮可能です。

一部のオプションは、オプション名の後に 1 つ以上のキーワード引数を受け付けます。例えば、arch オプションは複数のキーワードを受け付けます。

通常、複数のキーワードを指定するには、そのオプションを複数回指定します。ただし、例外もあります。次のオプションは有効です: -axNB (Linux) または /QaxNB (Windows)

コンパイラー・オプションは、#pragma を使用して無効にしない限り、コンパイル全体で効果があります。

オプションを無効にするには、オプションの否定形を指定します。

Windows システムでは、コマンドラインの最後に /Od を指定すると、1 つまたは複数のオプションを無効にすることができます。

Windows システムでは、/Od オプションは /Od/O1/O2/O3、および /Ox を含む相互排他的なオプショングループの一部です。同じオプショングループのオプションを 2 つ以上指定した場合、コマンドラインで最後に指定したオプションが、その前に指定したオプションよりも優先されます。

コマンドライン上に、オプションを有効にするバージョンと無効にするバージョンの両方がある場合、最後に指定したバージョンが優先されます。

コンパイラー・オプションのリストと機能別グループ

すべてのコンパイラー・オプションのリストを表示するには、コマンドラインで help オプションを指定します。

コンパイラー・オプションの機能別グループを表示するには、help オプションで機能カテゴリーを指定します。例えば、コンパイラーで表示される診断メッセージに影響を与えるオプションのリストを表示するには、次のいずれかのコマンドを入力します。

-help diagnostics     !Linux および Mac OS X システム
/help diagnostics     !Windows システム

指定することができるカテゴリーについては、help を参照してください。