FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。

4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | 書式 | 解説 | オプション | 環境変数 | 関連項目 | COPYRIGHT
CPP(1)                                GNU                               CPP(1)



名称
       cpp - C プリプロセッサ

書式
       cpp [-Dmacro[=defn]...] [-Umacro]
           [-Idir...] [-iquotedir...]
           [-Wwarn...]
           [-M|-MM] [-MG] [-MF filename]
           [-MP] [-MQ target...]
           [-MT target...]
           [-P] [-fno-working-directory]
           [-x language] [-std=standard]
           infile outfile

       最も役に立つオプションだけがここにリストされています。残りについては下
       記を参照してください。

解説
       しばしば cpp として知られている、C プリプロセッサは、コンパイルの前に利
       用者のプログラムを変換するために C コンパイラによって自動的に使用される
       マクロプロセッサです。利用者が、より長い記述を短い省略形としてマクロを
       定義できるので、それはマクロプロセッサと呼ばれます。

       C プリプロセッサは、C と C++ のソースコードのみに使用されることを目的と
       しています。昔は、一般的なテキストプロセッサとして乱用されていました。
       それは、C の字句解析 (lexical) 規則に従わない入力を詰まらせます。例え
       ば、アポストロフィは文字定数の始まりとして解釈され、エラーを引き起こし
       ます。また、利用者は、C 言語ファミリに重要でない入力の特性を維持してい
       るものを信頼することはできません。Makefile が前処理されるなら、すべての
       ハードタブが取り除かれ、その Makefile は動作しません。

       そうは言っても、利用者は、C でないもので cpp を使用してしばしばうまくや
       ることができます。他のアルゴル風のプログラミング言語 (Pascal, Ada, その
       他) は、多くの場合大丈夫です。アセンブリ言語は用心してください。
       -traditional-cpp モードは、より空白類を保存し、そのほかの点でもより寛大
       です。母国語のコメントの代わりに C または C++ スタイルのコメントを書く
       ことと、マクロを単純に保つことによって、問題の多くを避けることができま
       す。

       可能な限り、利用者が書いている言語に対応するプリプロセッサを使用するべ
       きです。最近のバージョンの GNU アセンブラには、マクロ機能があります。ほ
       とんどの高レベルプログラミング言語には、それら自体に条件付きコンパイル
       とインクルードメカニズムがあります。他のすべてが失敗するなら、GNU M4 の
       ような本当の一般的なテキストプロセッサを試みてください。

       C プリプロセッサはいくつかの詳細が異なっています。このマニュアルは、ISO
       標準の C の機能の小さいスーパセットを提供する、GNU C プリプロセッサにつ
       いて説明します。デフォルトモードでは、GNU C プリプロセッサは標準によっ
       て要求されたいくつかのことを行いません。これらは、使用するにしても、
       めったに使用されない機能であり、予想しないプログラムの意味の驚くべき変
       化を引き起こすかもしれません。厳格な ISO 標準 C を使用するためには、使
       用したい標準のバージョンによって、-std=c89 または -std=c99 オプションを
       使用するべきです。また、強制的にすべて診断を得るためには、利用者は、
       -pedantic を使用しなければなりません。

       このマニュアルは ISO プリプロセッサの振る舞いを説明します。ISO プリプロ
       セッサの振る舞いが伝統的な意味論と衝突しない場合に、余計な違いを最小に
       するために、伝統的なプリプロセッサは同じように振る舞うべきです。存在す
       るさまざまな違いは、伝統的モードセクションで詳しく説明されます。

       明確にするために、そのほかの点で注意されないなら、このマニュアルの CPP
       を言及することは GNU CPP のことを言及しています。

オプション
       C プリプロセッサは、引数として 2 つのファイル名、infileoutfile を要
       求します。プリプロセッサは、#include で指定する他のファイルとともに
       infile を読み込みます。組み合わされた入力ファイルで生成されるすべての出
       力は、outfile に書き込まれます。

       infile または outfile のどちらも、infile が標準入力から読み込むことを意
       味し、outfile が標準出力に書き込むことを意味する、- を指定することがで
       きます。また、どちらのファイルも省略されるなら、- がそのファイルに指定
       されているかのような同じ意味になります。

       他の注意がないか、または = でオプション終わっていなければ、引数を取るす
       べてのオプションは、引数がオプションの直後、またはオプションと引数の間
       に空白をがある状態で現れます: -Ifoo-I foo には、同じ効果がありま
       す。

       多くのオプションには、意味が同じで指定文字が異なる複数の名前がありま
       す。したがって、複数の単一文字のオプションは、グループ化できません: -dM-d -M は非常に異なっています。

       -D name
           name を 1 と定義されたマクロとしてあらかじめ定義します。

       -D name=definition
           definition の内容は、トークン化され、#define 指示の変換フェーズツ
           リーの間に現れたかのように処理されます。特に、定義は埋め込まれた改
           行文字によって先端が切り詰められます。

           利用者がシェルまたはシェルに似たプログラムからプリプロセッサを呼び
           出しているなら、シェルの構文で意味がある空白のような文字を保護する
           ためにシェルの引用 (クォート) 構文を使用する必要があるかもしれませ
           ん。

           コマンドラインで関数のようなマクロを定義したいなら、(もしあるなら)
           等号記号の前の引数リストを丸括弧で囲みます。丸括弧は、ほとんどの
           シェルで意味があるので、オプションを引用する必要があります。shcsh では、-D'name(args...)=definition' は動作します。

           -D-U オプションは、それらがコマンドラインに与えられる順序で処理
           されます。すべての -imacros file-include file オプションは、す
           べての -D-U オプションの後に処理されます。

       -U name
           組み込みまたは -D オプションで提供された、name の以前の定義を取り消
           します。

       -undef
           すべてのシステム特有、または GCC 特有のマクロをまえもって定義しませ
           ん。標準のまえもって定義されたマクロは、定義されたままです。

       -I dir
           ディレクトリ dir をヘッダファイルを検索するためのディレクトリのリス
           トに追加します。

           -I によって指定されたディレクトリは、標準のシステムインクルードディ
           レクトリの前に検索されます。ディレクトリ dir が標準のシステムインク
           ルードディレクトリであるなら、システムディレクトリのデフォルト検索
           順序とシステムヘッダの特別な処理が無効化されないことを保証するため
           に、このオプションは、無視されます。

       -o file
           出力を file に書き込みます。これは cpp への 2 番目のオプションでな
           い引数として file を指定することと同じです。gcc には 2 番目のオプ
           ションでない引数に対して異なった解釈があるので、利用者は出力ファイ
           ルを指定するために -o を使用しなければなりません。

       -Wall
           通常のコードに望ましいすべてのオプションの警告をオンに切り替えま
           す。現在のところ、これは、-Wcomment, -Wtrigraphs, -Wmultichar と
           "#if" 式の符号の変化を生じる整数拡張に関する警告です。プリプロセッ
           サの警告の多くは、デフォルトでオンであり、それらを制御するオプショ
           ンがないことに注意してください。

       -Wcomment
       -Wcomments
           コメント開始シーケンス /*/* コメントの中に現れるときはいつも、
           またはバックスラッシュ改行が // コメントの中に現れるときはいつも警
           告します。(両方の形式には、同じ効果があります。)

       -Wtrigraphs
           コメント中のほとんどのトライグラフ (trigraph) は、プログラムの意味
           に影響することはあり得ません。しかしながら、エスケープされた改行
           (行末の ??/) を形成するトライグラフは、コメントが始まるかまたは終る
           場所を変更することによって影響するかもしれません。そのために、エス
           ケープされた改行を形成するトライグラフは、コメント内で警告を生成し
           ます。

           このオプションは -Wall の意味を含んでいます。-Wall が与えられないな
           ら、このオプションは、トライグラフが有効でなくても有効になります。
           警告なしでトライグラフ変換を得ますが、他の -Wall 警告を得るには、
           -trigraphs -Wall -Wno-trigraphs を使用します。

       -Wtraditional
           伝統的な C と ISO C で異なる振る舞いがある特定の構文に関して警告し
           ます。また、伝統的な C と同等でない、避けられるべきである問題となる
           構文がある ISO C 構文に関して警告します。

       -Wimport
           最初に #import が使われたとき、警告します。

       -Wundef
           マクロでない識別子が defined の外側で #if 指示に遭遇するときはいつ
           も警告します。そのような識別子は 0 に置き換えられます。

       -Wunused-macros
           使用されていないメインファイルで定義されたマクロに警告します。少な
           くとも拡張されるか、または存在がテストされるなら、マクロは、使用さ
           れます。また、プリプロセッサは、マクロが再定義されるか、または未定
           義とする時点で使用されていないなら、警告します。

           組み込みマクロ、コマンドラインで定義されたマクロ、とインクルード
           ファイルで定義されたマクロは、警告されません。

           注: マクロが実際に使用されますが、スキップされた条件ブロック内で使
           用されるだけであるなら、CPP は未使用としてそれを報告します。このよ
           うな場合に警告を避けるためには、利用者は、例えば、最初にスキップさ
           れたブロックにそれを移動することによって、マクロの定義の範囲を改良
           した方がよいでしょう。代わりに、利用者は次のようなダミーを使用する
           こともあり得ます。

                   #if defined the_macro_causing_the_warning
                   #endif

       -Wendif-labels
           #else または #endif の後にテキストが続くときはいつも、警告します。
           通常、これは次の形式のコードで起こります。

                   #if FOO
                   ...
                   #else FOO
                   ...
                   #endif FOO

           2 番目と 3 番目の "FOO" は、コメントに入れるべきですが、しましば古
           いプログラムはそうなってません。この警告はデフォルトでオンです。

       -Werror
           すべての警告を困難なエラーとします。警告の引き金となるソースコード
           は拒絶されます。

       -Wsystem-headers
           システムヘッダのコードのための警告を発行します。これらは、通常、利
           用者自身のコードのバグを見つけるのに役に立たないので、抑制されま
           す。システムライブラリに責任があるなら、利用者はそれらを見たいるか
           もしれません。

       -w  GNU CPP がデフォルトで発行するものを含めてすべての警告を抑制しま
           す。

       -pedantic
           C 標準にリストされたすべての強制的な診断を発行します。頻繁に無害な
           コードの引き金となるので、それらのいくつかは、デフォルトで省略され
           ます。

       -pedantic-errors
           すべての強制的な診断を発行し、すべての強制的な診断をエラーとしま
           す。これは、GCC が -pedantic なしで発行する強制的な診断を含みます
           が、警告として取り扱います。

       -M  前処理の結果を出力する代わりに、メインソースファイルの依存関係を記
           述する make のための適切な規則を出力します。プリプロセッサは、その
           ソースファイルのためのオブジェクトファイル名、コロン、-include また
           は -imacros コマンドラインオプションから来るものをインクルードして
           いる、すべてのインクルードファイルの名前を含む 1 つの make 規則を出
           力します。

           明示的に (-MT または -MQ で) 指定されていないなら、オブジェクトファ
           イル名は、ソースファイルの basename とソースファイルのサフィックス
           をオブジェクトファイルのサフィックスに置き換えたものから成ります。
           多くのインクルードされているファイルがあるなら、規則は \-newline を
           使用していくつかの行に分割されます。規則には、コマンドがありませ
           ん。

           このオプションは、-dM のようなプリプロセッサのデバッグ出力を抑制し
           ません。そのようなデバッグ出力と依存関係の規則が混在することを避け
           るために、利用者は、-MF で依存関係の出力ファイルを明らかに指定する
           べきであるか、または DEPENDENCIES_OUTPUT のように環境変数を使用する
           べきです。それでもデバッグ出力は、いつものように通常の出力ストリー
           ムに送られます。

           ドライバへ -M を渡すことは、-E の意味を含み、暗黙の -w での警告を抑
           制します。

       -MM -M に似ていますが、システムヘッダのディレクトリで見つけられるヘッダ
           ファイルも、そのようなヘッダから直接的または間接的にインクルードさ
           れているヘッダファイルについて言及しません。

           #include 指示で山括弧または二重引用符の選択は、そのヘッダが -MM 依
           存関係出力に現れるかどうかをそれ自体が決定しないことを意味します。
           これは、GCC バージョン 3.0 とそれ以前のものから意味的にわずかに変更
           されています。

       -MF file
           -M または -MM と共に使用するとき、依存関係を書き込むファイルを指定
           します。-MF スイッチが与えないなら、プリプロセッサは、前処理された
           出力を送った同じ場所に規則を送ります。

           ドライバオプション -MD または -MMD と共に使用されるとき、-MF はデ
           フォルトの依存関係出力ファイルを上書きします。

       -MG 依存関係の生成を要求する -M のようなオプションに関連して、-MG は不
           足しているヘッダファイルが生成されるファイルであると仮定し、エラー
           を引き起こさずに、それらを依存関係のリストに追加します。依存関係の
           ファイル名は、任意のパスを先頭に追加しないで、"#include" 指示から直
           接取り出されます。また、-MG は、不足しているヘッダファイルを無用の
           ものとして、前処理された出力を抑制します。

           この機能は、makefiles の自動更新に使用されます。

       -MP このオプションは、それぞれが何も依存しない、メインファイル以外の各
           依存関係のための偽のターゲットを追加するように CPP に指示します。利
           用者が、適合する Makefile を更新しないでヘッダファイルを削除するな
           ら、これらのダミーの規則は、make が与えるエラーに対処します。

           次は典型的な出力です:

                   test.o: test.c test.h

                   test.h:

       -MT target
           依存関係の生成によって発行された規則のターゲットを変更します。デ
           フォルトでは、CPP は任意のパスを含むメイン入力ファイルの名前を取
           り、.c のような任意のファイルサフィックスを削除して、プラットフォー
           ムでの通常のオブジェクトのサフィックスを追加します。結果はターゲッ
           トです。

           -MT オプションは、利用者が指定する文字列をそのままターゲットに設定
           します。複数のターゲットを必要とするなら、利用者は、-MT への単一の
           引数として指定するか、または複数の -MT オプションを使用することがで
           きます。

           例えば、-MT '$(objpfx)foo.o' は次のようになります。

                   $(objpfx)foo.o: foo.c

       -MQ target
           -MT と同じですが、Make のための特別なすべての文字をクォート (引用)
           します。-MQ '$(objpfx)foo.o' は次のようになります。

                   $$(objpfx)foo.o: foo.c

           デフォルトのターゲットは、まるで -MQ と共に与えられるかのように自動
           的にクォートされます。

       -MD -MD は、-E が意味されないことを除いて、-M -MF file と同等です。ドラ
           イバは -o オプションが与えられているかどうかに基づいて file を決定
           します。それがそうなら、ドライバは、その引数を使用しますが、.d のサ
           フィックスを付けて使用し、そうでなければ、入力ファイルの basename
           を取って、.d サフィックスを適用します。

           -MD-E とともに使用されるなら、任意の -o スイッチは、依存関係出
           力ファイルを指定するために解釈されますが、-E なしで使用されるなら、
           各 -o は、ターゲットオブジェクトファイルを指定するために解釈されま
           す。

           -E が意味されないので、コンパイル処理の副作用として依存関係出力ファ
           イルを生成するために -MD を使用することができます。

       -MMD
           ユーザヘッダファイルだけを言及して、システムヘッダファイルが言及さ
           れないことを除いて、-MD に似ています。

       -x c
       -x c++
       -x assembler-with-cpp
           ソース言語を指定します: C, C++ またはアセンブリ。これは標準の適合性
           または拡張とは無関係です。単に予想する基本の構文を選択します。これ
           らのオプションが何も与えられないなら、cpp は次のソースファイルの拡
           張子から言語を推論します: .c, .cc または .S。また、C++ とアセンブリ
           のための他の一般的な拡張子も認識されます。cpp が拡張子を認識しない
           なら、C としてそのファイルを取り扱います。これは最も一般的なモード
           です。

           注: cpp の以前のバージョンは、言語と標準適合性のレベルの両方を選択
           する -lang オプションを受け付けます。このオプションは、-l オプショ
           ンと衝突するので、削除されました。

       -std=standard
       -ansi
           コードが適合するべきである標準を指定します。現在の CPP は C と C++
           標準に関して知っています。他のものは将来追加されるかもしれません。

           standard は、次のうちの 1 つです:

           "iso9899:1990"
           "c89"
               1990 年からの ISO C 標準。c89 は、このバージョンの標準のための
               習慣的な省略形です。

               -ansi オプションは -std=c89 と同等です。

           "iso9899:199409"
               1994 年に改正された、1990 年の C 標準。

           "iso9899:1999"
           "c99"
           "iso9899:199x"
           "c9x"
               1999 年 12 月に発行された、改訂された ISO C 標準。発行される前
               は、C9X として知られていました。

           "gnu89"
               1990 年の C 標準に GNU 拡張を追加したもの。これはデフォルトで
               す。

           "gnu99"
           "gnu9x"
               1999 年の C 標準に GNU 拡張を追加したもの。

           "c++98"
               1998 年の ISO C++ 標準に改正を追加したもの。

           "gnu++98"
               -std=c++98 に GNU 拡張を追加したものと同じです。これは C++ コー
               ドのデフォルトです。

       -I- インクルードパスを分割します。-I- の前に -I オプションで指定された
           任意のディレクトリは、"#include "file"" で要求されたヘッダのみ検索
           されます。"#include <file>" のものは、検索されません。追加ディレク
           トリが -I- の後で -I オプションで指定されるなら、それらのディレクト
           リは、すべての #include 指示で検索されます。

           さらに、-I- は、"#include "file"" のための最初の検索ディレクトリと
           してカレントファイルディレクトリの使用を抑制します。

           このオプションは、推奨されません。

       -nostdinc
           ヘッダファイルのための標準のシステムディレクトリを検索しません。利
           用者が -I オプションで指定したディレクトリ (と、適切であるなら、カ
           レントディレクトリ) のみ検索されます。

       -nostdinc++
           C++ 特有の標準ディレクトリのヘッダファイルを検索しませんが、それで
           も、他の標準ディレクトリは検索します。(このオプションは、C++ ライブ
           ラリを構築するとき使用されます。)

       -include file
           あたかも "#include "file"" が、プライマリソースファイルの最初の行に
           現れたかのように file を処理します。しかしながら、file を検索する最
           初のディレクトリは、メインソースファイルを含むディレクトリの代わり
           のプリプロセッサの作業ディレクトリです。そこで見つけられないなら、
           いつものように "#include "...""  検索チェーンの残りで検索されます。

           複数の -include オプションを与えられるなら、ファイルはそれらがコマ
           ンドラインに現れる順序でインクルードされます。

       -imacros file
           file をスキャンすることによって生成された任意の出力が捨てられること
           を除いて、-include によく似ています。それが定義するマクロは、定義さ
           れたまま残ります。これによって、利用者は、また、その宣言を処理しな
           いで、ヘッダからすべてのマクロを取得することができます。

           -imacros によって指定されたすべてのファイルは、-include によって指
           定されたすべてのファイルの前に処理されます。

       -idirafter dir
           ヘッダファイルのために dir を検索しますが、-I と共に指定されたすべ
           てのディレクトリと標準のシステムディレクトリが検索しつくされた後に
           検索します。dir はシステムインクルードディレクトリとして取り扱われ
           ます。

       -iprefix prefix
           後に続く -iwithprefix オプションのためのプレフィックスとして prefix
           を指定します。プレフィックスがディレクトリを表すなら、利用者は、最
           後に / を付けるべきです。

       -iwithprefix dir
       -iwithprefixbefore dir
           -iprefix で以前に指定されたプレフィックスに dir を追加し、結果の
           ディレクトリをインクルード検索パスに追加します。-iwithprefixbefore-I が置かれる同じ場所にそれを置きます。-iwithprefix-idirafter が置かれる場所に置きます。

       -isysroot dir
           このオプションは、--sysroot オプションに似ていますが、ヘッダファイ
           ルだけに適用されます。詳しい情報については、--sysroot オプションを
           参照してください。

       -imultilib dir
           ターゲット特有の C++ ヘッダを含むディレクトリのサブディレクトリとし
           て dir を使用します。

       -isystem dir
           -I によって指定されたすべてのディレクトリの後で、標準のシステムディ
           レクトリの前に、ヘッダファイルのための dir を検索します。標準のシス
           テムディレクトリに適用されるのと同じ特別な扱いを受けるために、シス
           テムディレクトリとしてそれをマークします、

       -iquote dir
           "#include "file"" で要求されたヘッダファイルのためだけに dir を検索
           します。標準のシステムディレクトリの前に、-I によって指定されたすべ
           てのディレクトリの前に、それらは、"#include <file>" を検索しません
           す。

       -fdollars-in-identifiers
           識別子として $ を受け付けます。

       -fextended-identifiers
           識別子の一般的な文字名を受け付けます。このオプションは、実験的で
           す。GCC の将来のバージョンでは、C99 と C++ のためのデフォルトとして
           有効にされるでしょう。

       -fpreprocessed
           入力ファイルが既に前処理されていることをプリプロセッサに指示しま
           す。これは、マクロ展開、トライグラフ変換、エスケープされた改行の継
           続 (newline splicing) とほとんどの指示の処理のようなものを抑制しま
           す。利用者が、-C を付けて前処理されたファイルを問題なしでコンパイラ
           に渡すことができるように、プリプロセッサは、それでもまだコメントを
           認識して削除します。このモードでは、統合化されたプリプロセッサは、
           フロントエンドのためのトークン化ツール (tokenizer) と大差ありませ
           ん。

           -fpreprocessed は、入力ファイルに拡張子 .i, .ii または .mi の 1 つ
           があるなら、暗黙に処理します。これらは GCC が -save-temps によって
           作成された前処理されたファイルに使用する拡張子です。

       -ftabstop=width
           タブストップの間隔を設定します。これは、たとえタブが行に現れても、
           プリプロセッサが警告またはエラーで正しいカラム位置を報告することを
           助けます。値が、1 未満または 100 より大きいなら、オプションは無視さ
           れます。デフォルトは 8 です。

       -fexec-charset=charset
           文字列と文字定数に使用される実行文字集合を設定します。デフォルトは
           UTF-8 です。charset はシステムの "iconv" ライブラリルーチンによって
           サポートされた任意のエンコードを指定できます。

       -fwide-exec-charset=charset
           ワイド文字列と文字定数に使用されるワイド実行文字集合を設定します。
           デフォルトは、UTF-32 または UTF-16 いずれかの "wchar_t" の幅に対応
           しているものです。-fexec-charset と同様に、charset は、"iconv" ライ
           ブラリルーチンによってサポートされた任意のエンコードを指定できま
           す。しかしながら、利用者には、"wchar_t" で正確に適合しないエンコー
           ドに関する問題があります。

       -finput-charset=charset
           入力ファイルの文字集合から GCC によって使用されるソース文字集合への
           変換に使用される、入力文字集合を設定します。ロケールが指定されてい
           ないか、または GCC がロケールからこの情報を得ることができないなら、
           デフォルトは UTF-8 です。これは、ロケールまたはコマンドラインオプ
           ションのいずれかで、上書きすることができます。競合があるなら、現
           在、コマンドラインオプションが優先されます。charset はシステムの
           "iconv" ライブラリルーチンによってサポートされた任意のエンコードを
           指定できます。

       -fworking-directory
           前処理の時点でカレント作業ディレクトリをコンパイラに知らせるプリプ
           ロセッサ出力のラインマーカ (linemarker) の生成を有効にします。この
           オプションが有効にされるとき、プリプロセッサは最初のラインマーカの
           後にカレント作業ディレクトリの後に 2 つのスラッシュが続く 2 番目の
           ラインマーカを出力します。前処理された入力にそれが存在していると
           き、いくつかのデバッグ情報形式でカレント作業ディレクトリとして出力
           されたディレクトリのように、GCC はこのディレクトリを使用します。こ
           のオプションは、デバッグ情報が有効にされるなら、暗黙的に有効にされ
           ますが、否定形式の -fno-working-directory でこれを抑制することがで
           きます。-P フラグがコマンドラインに存在しているなら、"#line" 指示は
           どんなものであれ出力されないので、このオプションは効果がありませ
           ん。

       -fno-show-column
           診断でカラム位置を印刷 (表示) しません。これは、診断が dejagnu のよ
           うな、カラム位置を理解していないプログラムによってスキャンされるな
           ら、必要です。

       -A predicate=answer
           述語 predicate と答え answer でアサーションを行います。この形式は、
           シェルの特殊文字を使用しないので、いまだにサポートされている古い形
           式 -A predicate(answer) より好まれています。

       -A -predicate=answer
           述語 predicate と答え answer でのアサーションをキャンセルします。

       -dCHARS
           CHARS は、1 つ以上の文字が続くシーケンスで、空白が先行してはいけま
           せん。他の文字は、適切なコンパイラによって解釈されるか、または GCC
           の将来のバージョンのために予約されているので黙って無視されます。振
           る舞いが競合する文字を指定するなら、結果は未定義です。

           M   通常の出力の代わりに、事前に定義されたマクロを含んで、プリプロ
               セッサの実行の間に定義されたすべてのマクロのための #define 指示
               のリストを生成します。これは、プリプロセッサのバージョンに事前
               に定義されるものを見つける方法を利用者に与えます。利用者のファ
               イル foo.h がないと仮定すると、次のコマンド

                       touch foo.h; cpp -dM foo.h

               は、事前に定義されたすべてのマクロを表示します。

           D   次の 2 つの観点を除いて M に似ています: 事前に定義されたマクロ
               を含んでいません、そして、#define 指示と前処理の結果の両方を出
               力します。両方の出力は標準出力ファイルに行きます。

           N   D に似ていますが、マクロ名のみを出力し、それらを展開しません。

           I   前処理の結果に追加されれる #include 指示を出力します。

       -P  プリプロセッサからの出力のラインマーカの生成を抑制します。これは、C
           コードでない何かでプリプロセッサを実行するとき、役に立ち、ライン
           マーカによって混乱するかもしれないプログラムに送られます。

       -C  コメントを削除しません。すべてのコメントは、指示と共に削除される、
           処理された指示のコメントを除いて、出力ファイルにそのまま渡されま
           す。

           利用者は、-C を使用するとき、副作用に備えるべきです。それによって、
           プリプロセッサは、それら自体でトークンとしてコメントを取り扱いま
           す。例えば、指示行となるものの始めに現れるコメントは、その行の最初
           のトークンがもはや # でないので、その行を普通のソース行に変える効果
           があります。

       -CC マクロ展開の間を含めてコメントを削除しません。マクロ中に含まれたコ
           メントがマクロが展開されているところで出力ファイルにそのまま渡され
           ることを除いて、これは -C に似ています。

           -C オプションの副作用に加えて、-CC オプションによって、マクロ内のす
           べての C++ スタイルコメントは、C スタイルのコメントに変換されます。
           これは、ソース行の残りを不用意にコメントアウトすることからの後のマ
           クロの使用を防ぐためのものです。

           -CC オプションは、一般的に lint コメントをサポートするために使用さ
           れます。

       -traditional-cpp
           ISO C プリプロセッサと対照的に、旧式な C プリプロセッサの振る舞いを
           模倣するように試みます。

       -trigraphs
           トライグラフシーケンスを処理します。

       -remap
           MS-DOS のような非常に短いファイル名のみを許可するファイルシステムに
           対処する特別なコードを有効にします。

       --help
       --target-help
           何らかを前処理することの代わりにすべてのコマンドラインオプションを
           説明するテキストを印刷 (表示) します。

       -v  冗長モード。実行の始めに GNU CPP のバージョン番号を印刷し、インク
           ルードパスの最終形式を報告します。

       -H  他の通常の動作に加えて、使用される各ヘッダファイルの名前を印刷しま
           す。各名前は、それが #include スタックでどれくらい深いかを示すため
           にインデント (字下がり) されます。また、プリコンパイルされたヘッダ
           ファイルは、それらが無効であることがわかっても、印刷されます。無効
           のプリコンパイルされたヘッダファイルは、...x で印刷され、有効なもの
           は、...! で印刷されます。

       -version
       --version
           GNU CPP のバージョン番号を印刷します。1 つのダッシュで、いつものよ
           うに、前処理を行います。2 つのダッシュで、直ちに終了します。

環境変数
       このセクションは CPP の動作に影響を与える環境変数について説明していま
       す。利用者は、インクルードファイルを検索するときに使用するディレクトリ
       またはプレフィックスを指定するためか、または依存関係出力を制御するため
       に使用することができます。

       また、-I のようなオプションを使用して検索する場所を指定したり、-M のよ
       うなオプションで依存関係出力を制御できることに注意してください。これら
       は、環境変数に優先し、次に環境変数は GCC の設定に優先します。

       CPATH
       C_INCLUDE_PATH
       CPLUS_INCLUDE_PATH
           各変数の値は、ヘッダファイルを検索するための特殊文字によって区切ら
           れたディレクトリのリストで、PATH によく似ています。特殊文字
           "PATH_SEPARATOR" は、ターゲット依存で、GCC の構築時に決定されます。
           Microsoft Windows ベースのターゲットのためには、それはセミコロン
           で、他のほとんどすべてのターゲットではコロンです。

           CPATH は、-I で指定されたかのように検索されるディレクトリのリストを
           指定しますが、コマンドラインで -I オプションで与えれらた任意のパス
           の後で検索されます。この環境変数は、どの言語で前処理されているかに
           かかわらず使用されます。

           残りの環境変数は、示された特定の言語を前処理するときだけ、適用され
           ます。それぞれ、-isystem で指定されるかのように検索されるディレクト
           リのリストを指定しますが、コマンドラインで -isystem オプションで与
           えられた任意のパスの後で検索されます。

           これらすべての変数では、空の要素は、カレント作業ディレクトリを検索
           するようにコンパイラに指示します。空の要素はパスの始めまたは終りに
           現れることができます。例えば、CPATH の値が ":/special/include" であ
           るなら、-I. -I/special/include と同じ効果があります。

       DEPENDENCIES_OUTPUT
           この変数が設定されるなら、その値は、コンパイラによって処理された非
           システムヘッダファイルに基づく Make のための依存関係をどのように出
           力するかを指定します。システムヘッダファイルは依存関係の出力で無視
           されます。

           DEPENDENCIES_OUTPUT の値にファイル名が指定されたなら、その場合、
           Make 規則は、ソースファイル名からターゲット名を推測して、そのファイ
           ルに書き込まれます。または、値は形式 file target で指定することがで
           き、その場合、規則は、ターゲット名として target 使用してファイル
           file に書き込まれます。

           言い換えれば、この環境変数は、省略可能な -MT スイッチをつけたオプ
           ション -MM-MF の組み合わせに同等です。

       SUNPRO_DEPENDENCIES
           この変数は、システムヘッダファイルが無視されないことを除いて、
           DEPENDENCIES_OUTPUT (上記参照) と同じです、それで、-MM よりむしろ
           -M を意味します。しかしながら、メイン入力ファイルでの依存関係は省略
           されます。

関連項目
       gpl(7), gfdl(7), fsf-funding(7), gcc(1), as(1), ld(1), and the Info
       entries for cpp, gcc, and binutils.

COPYRIGHT
       Copyright (c) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
       1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
       Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.1 or
       any later version published by the Free Software Foundation.  A copy of
       the license is included in the man page gfdl(7).  This manual contains
       no Invariant Sections.  The Front-Cover Texts are (a) (see below), and
       the Back-Cover Texts are (b) (see below).

       (a) The FSF's Front-Cover Text is:

            A GNU Manual

       (b) The FSF's Back-Cover Text is:

            You have freedom to copy and modify this GNU Manual, like GNU
            software.  Copies published by the Free Software Foundation raise
            funds for GNU development.



gcc-4.2.1                         2007-07-19                            CPP(1)

Table of Contents

FreeBSD マニュアル検索