[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.9 プリプロセッサオプション

以下のオプションは C プリプロセッサを制御する。 C プリプロセッサは、各 C のソースファイルに対して、実際のコンパイルの 前に実行される。

-E’ オプションを指定すると、前処理以外のことはやらない。 以下のオプションのうち幾つかは、‘-E’ と組み合わせたときにだけ 意味を持つ。何故なら、それらはプリプロセッサの出力を実際の コンパイルには適さないものにするからである。

-include file

正規の入力ファイルを処理する前に、file を入力として処理する。 事実上、file の内容が先にコンパイルされる。 コマンド行で指定した ‘-D’ オプションと ‘-U’ オプションは どれも、‘-include file’ の前に必ず処理される。 これは、コマンド行に書かれた順番には関係しない。 全ての ‘-include’ オプションと ‘-imacros’ オプションは、 書かれた順に処理される。

-imacros file

入力として file を処理し、その結果の出力は捨て去った後で、 正規の入力ファイルの処理に取りかかる。 file から生成される出力は捨てられるので、 ‘-imacros file’ の唯一の効果は、file で マクロを定義し、正規の入力でそれを使えるようにすることである。

コマンド行で指定した ‘-D’ オプションと ‘-U’ オプションは どれも、‘-imacros file’ の前に必ず処理される。 これは、コマンド行に書かれた順番には関係しない。 全ての ‘-include’ オプションと ‘-imacros’ オプションは、 書かれた順に処理される。

-idirafter dir

ディレクトリ dir を第二のインクルードパスに加える。 第二のインクルードパスにあるディレクトリは、ヘッダファイルが 第一のインクルードパス(‘-I’ が加えたもの)にあるディレクトリには 見つからないときに、検索される。

-iprefix prefix

prefix を、後続の ‘-iwithprefix’ オプションのプレフィックス として指定する。

-iwithprefix dir

ディレクトリを一個、第二のインクルードパスに追加する。 そのディレクトリの名前は、prefixdir を 連結することで作られる。 ここで prefix は既出の ‘-iprefix’ で指定されたものである。 プレフィックスをまだ指定していなければ、コンパイラのインストールされた パスを含むディレクトリがデフォルトとして使われる。

-iwithprefixbefore dir

主となるインクルードパスにディレクトリを追加する。 追加するディレクトリ名は、‘-iwithprefix’ の場合と同じように、 prefixdir をつなげて作られる。

-isystem dir

ディレクトリを一個、第二のインクルードパスの先頭に追加し、 それをシステムのディレクトリとして印を付け、 標準のシステムディレクトリが受けるのと同じ特別な扱いを受けられるように する。

-nostdinc

システム標準のディレクトリにあるヘッダファイルを検索しない。 ‘-I’ で指定したディレクトリ(と、適切であればカレントディレクトリ) だけを検索する。‘-I’ については See section ディレクトリ検索用オプション

-nostdinc’ と ‘-I-’ を両方使うと、インクルードファイルの 検索パスを明示的に指定したディレクトリにだけ限定することができる。

-undef

非標準マクロは何も定義済としない。 (アーキテクチャを知らせるフラグも含む。)

-E

C プリプロセッサのみを実行する。 指定された全ての C ソースファイルをプリプロセスし、結果を 標準出力か指定された出力ファイルに出力する。

-C

プリプロセッサにコメントを除去しないように指示する。 ‘-E’ オプションと合わせて使われる。

-P

プリプロセッサに ‘#line’ 制御子を生成しないように指示する。 ‘-E’ オプションと合わせて使われる。

-M

各オブジェクトファイルの依存ファイルを記述する make のルールに 適した出力を行なうようプリプロセッサに指示する。 プリプロセッサは、各ソースファイル毎に make のルールを 一つ出力する。そのルールのターゲットは、ソースファイルに対応する オブジェクトファイル名であり、依存ファイルはそのソースファイルが #include している全てのヘッダファイルである。 このルールは一行でも良いし、長ければ ‘\’-改行 で継続しても良い。 ルールのリストは、前処理済みの C プログラムではなく、標準出力に 出力される。

-M’ には ‘-E’ が含まれる。

make のルールの出力を指定するもう一つの方法は、 環境変数 DEPENDENCIES_OUTPUT を設定することである (see section GCC に影響する環境変数)。

-MM

-M’ と同様だが、‘#include "file"’ の形式で インクルードされるファイルだけを出力する。 ‘#include <file>’ の形式でインクルードされる システムのヘッダファイルは除かれる。

-MD

-M’ と同様だが、依存関係情報は、入力ファイル名の最後の ".c" を ".d" に置き換えたファイルに出力される。 これは、指定されたファイルをコンパイルしたうえで行なわれる。 ‘-M’ は通常のコンパイルは行なわないが、‘-MD’ は行なう。

Mach では、md というユーティリティを使って、 複数の依存関係ファイルを一個の依存関係にマージすることができ、 ‘make’ コマンドで使うのに適したものになる。

-MMD

-MD’ と同様だが、ユーザのヘッダファイルのみを出力し、 システムのヘッダファイルは出力しない。

-MG

見当たらないヘッダファイルは生成されたファイルとして扱い、 ソースファイルと同じディレクトリにあると仮定する。 ‘-MG’ を指定するなら、‘-M’ か ‘-MM’ のどちらかも 指定しなければならない。‘-MG’ は、‘-MD’ や ‘-MMD’ と 組み合わせるのはサポートされていない。

-H

通常の処理に加えて、使われている各ヘッダファイル名を表示する。

-Aquestion(answer)

question に対する回答 answer を表明する。 それは、‘#if #question(answer)’ のような前処理の条件文で テストすることができる。‘-A-’ は、普通ターゲット機種を記述する 標準の表明を無効にする。

-Dmacro

マクロを macro を定義し、文字列 ‘1’ をその定義とする。

-Dmacro=defn

マクロ macrodefn として定義する。 コマンド行に現れる全ての ‘-D’ は、どの ‘-U’ オプションよりも 前に処理される。

-Umacro

マクロ macro を未定義にする。‘-U’ オプションは、 全ての ‘-D’ オプションの後で、‘-include’ と ‘-imacros’ オプションの前に評価される。

-dM

プリプロセッサに対し、前処理の終了段階で有効なマクロ定義の一覧だけを 出力することを指示する。‘-E’ と組み合わせて使う。

-dD

プリプロセッサに対し、全てのマクロ定義を出力することを指示する。 マクロ定義は、それ以外の出力中に元々の順番で現れる。

-dN

-dD’ と同様だが、マクロ引数と展開内容が省略される。 ‘#define name’ だけ出力する。

-trigraphs

ANSI C のトリグラフをサポートする。 ‘-ansi’ オプションを指定してもこの効果がある。

-Wp,option

option をプリプロセッサへのオプションとして渡す。 option にカンマが入っていると、カンマのところで複数のオプションに 分割される。


This document was generated using texi2html 1.78.