/P (プリプロセス出力のファイルへの書き込み)
C および C++ ソース ファイルが前処理され、前処理済みの出力がファイルに書き込まれます。
構文
/P
解説
ファイルのベース名はソース ファイルと同じで、拡張子は .i です。 そのプロセスでは、すべてのプリプロセッサ ディレクティブとマクロの展開を実行し、コメントを削除します。 前処理された出力にコメントを保持するには、/C (プリプロセス時のコメントの保持) オプションを /P と共に使用します。
/P を使用すると、各インクルード ファイルの先頭と末尾、および条件付きコンパイルのためにプリプロセッサ ディレクティブによって削除された行の周囲にある出力に #line
ディレクティブが追加されます。 これらのディレクティブによって、前処理されたファイルの行に番号が割り振り直されます。 その結果、処理の後の段階で生成されたエラーでは、前処理されたファイルの行ではなく、元のソース ファイルの行番号を参照します。 #line
ディレクティブが生成されないようにするには、/EP (#line ディレクティブを挿入しない stdout へのプリプロセス) と /P を使用します。
/P オプションを指定すると、コンパイルされなくなります。 /Fo (オブジェクト ファイル名) を使用した場合でも、.obj ファイルは生成されません。 コンパイルのために前処理済みファイルを再送信する必要があります。 /P を指定すると、/FA、/Fa、/Fm の各オプションからの出力ファイルも抑制されます。 詳しくは、「FA、/Fa (リスティング ファイル)」と「/Fm (マップ ファイルの名前の指定)」をご覧ください。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
[構成プロパティ]>[C/C++]>[プリプロセッサ] プロパティ ページを選択します。
[Generate Preprocessed File]\(前処理済みファイルの生成\) プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- 以下を参照してください。GeneratePreprocessedFile
例
次のコマンド ラインでは、ADD.C
の前処理、コメントの保持、#line
ディレクティブの追加を行い、その結果をファイル ADD.I
に書き込みます。
CL /P /C ADD.C