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

2.16 GCC に影響する環境変数

この節では、GCC の動作に関係する環境変数について説明する。 これらの環境変数のうちのいくつかの仕事は、色々な種類のファイルを検索するときに 使うディレクトリやプレフィックスを指定することである。 またいくつかは、コンパイル環境の他の側面を指定するのに使われる。

また、検索場所を指定するのに ‘-B’、‘-I’、‘-L’ (see section ディレクトリ検索用オプション)等のオプションを使うことが出来ることに注意。 これらのオプションは、環境変数で指定された場所よりも優先する。 また、環境変数による指定は、GCC のコンフィギュレーションで 指定された場所よりも優先する。See section コンパイラドライバ ‘gcc’ の制御

LANG
LC_CTYPE
LC_MESSAGES
LC_ALL

これらの環境変数は、GCC が、地域化(localization)情報を、 異なる国の習慣とともに動作することが可能になるように使う方法を 制御する。 GCC は、コンフィギュレーションで指定されていれば、 ロケール・カテゴリ LC_TYPELC_MESSAGES を調べる。 これらのロケール・カテゴリには、読者のインストールでサポートされている 任意の値を設定できる。 代表的な値は、英国(United Kingdom)の英語を表す ‘en_UK’ である。

環境変数 LC_CTYPE は、文字の分類を指定する。 GCC はこれを使って、文字列中の文字の境界を決定する。 これは、いくつかのマルチバイトのエンコーディングで必要になる。 これらのエンコーディングでは、文字の境界がわからないと、 文字列の終了やエスケープとして解釈されてしまうような引用文字やエスケープ 文字が含まれている。

環境変数 LC_MESSAGES は、診断メッセージで使うべき言語を指定する。

環境変数 LC_ALL が設定されていると、LC_CTYPELC_MESSAGES の値を上書きする。設定されていないと、 LC_CTYPELC_MESSAGES のデフォルトは、 環境変数 LANG の値となる。 これらのどの変数も設定されていない場合は、GCC は伝統的な C の 英語の動作をデフォルトにする。

TMPDIR

TMPDIR が定義されていれば、その値で一時ファイルを置くディレクトリを 指定する。GCC は一時ファイルを使ってコンパイルの一つのステージの 出力を保持する。それが次のステージの入力として使われる。 例えば、プリプロセッサの出力は、コンパイラ本体への入力になる。

GCC_EXEC_PREFIX

GCC_EXEC_PREFIX が設定されていると、コンパイラにより 実行されるサブプログラムの名前のプレフィックスを指定する。 このプレフィックスをサブプログラム名と組み合わせるときにスラッシュは 補われないが、希望するならプレフィックスの最後にスラッシュを指定することが できる。

GCC が指定されたプレフィックスを使ってサブプログラムを見つけられなかった 時には、サブプログラムが通常置かれる場所を探す。

GCC_EXEC_PREFIX のデフォルト値は ‘prefix/lib/gcc-lib/’ であり、prefix は、‘configure’ スクリプトを実行したときの prefix の値である。

-B’ で指定したその他のプレフィックスは、このプレフィックスよりも 優先する。

このプレフィックスは、リンク時に使われる ‘crt0.o’ のようなファイルを 探すのにも使われる。

さらに、このプレフィックスは、ヘッダファイルを検索すべきディレクトリを 見つけるときに変わった使われ方をする。通常、‘/usr/local/lib/gcc-lib’ で(正確には、GCC_INCLUDE_DIR の値で)始まる名前の標準のディレクトリ 毎に、その名前の始まりを指定されたプレフィックスに置き換えて、別の ディレクトリ名を生成する。つまり、‘-Bfoo/’ を 指定すると、GCC は、普通なら ‘/usr/local/lib/bar’ を探すところを、 ‘foo/bar’ を探すのである。この別のディレクトリは最初に検索される。 標準のディレクトリが次に検索される。

COMPILER_PATH

COMPILER_PATH の値はコロンで区切ったディレクトリのリストであり、 PATH に良く似ている。GCC は、GCC_EXEC_PREFIX を 使ってサブプログラムを見つけられなかった場合に、 これで指定されたディレクトリからサブプログラムを探す。

LIBRARY_PATH

LIBRARY_PATH の値はコロンで区切ったディレクトリのリストであり、 PATH に良く似ている。ネイティブコンパイラとしてコンフィギュレーション を行なった場合は、GCC は、特別なリンカファイルを検索するときに、 GCC_EXEC_PREFIX を使っても見つけられないときは、 このように指定されたディレクトリを使う。 GCC を使ってリンクを行なうときも、‘-l’ で指定された通常の ライブラリを探すときに、これらのディレクトリを使う(ただし、 ‘-L’ で指定されたディレクトリがまず検索される)。

C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH

これらの環境変数は、特定の言語に関与する。各変数の値は、PATH のように、 コロンで区切ったディレクトリのリストである。 GCC がヘッダファイルを探すとき、使用している言語向けの変数に 列挙されているディレクトリから探す。これは、‘-I’ で指定された ディレクトリの検索の後で、標準ヘッダファイルディレクトリの検索の 前に行なわれる。

DEPENDENCIES_OUTPUT

この変数が設定されていると、その値が GCC により処理されるヘッダ ファイルに基づく、Make 用依存関係の出力方法を指定する。 この出力は ‘-M’ オプションによる出力に良く似ているが、 独立したファイルに出力され、通常のコンパイル結果に追加される形で 出力される。

DEPENDENCIES_OUTPUT の値は単なるファイル名でも良く、 その場合は Make 用のルールはそのファイルに書かれる。Make のターゲット名は ソースファイル名から推測する。あるいは、この変数の値は ‘file target’ という形でも良い。この場合、 ファイル file に書き出されるルールは、ターゲット名として target を使う。

LANG

この環境変数を使って、ロケール情報を GCC に渡す。この情報の一つの 使い方としては、文字定数、文字列定数、コメントが C や C++ でパースされる ときに使うべき文字セットを決定することがある。GCC をマルチバイト文字を 許すようにコンフィギュレーションした場合は、LANG の値として 以下のものが認識される。

C-JIS

JIS コード文字を認識する。

C-SJIS

SJIS コード文字を認識する。

C-EUCJP

EUCJP コード文字を認識する。

LANG が定義されていなかったり、上記以外の値になっている場合は、 GCC はデフォルトのロケールで定義される ‘mblen’ と ‘mbtowc’ を 使って、マルチバイト文字を認識し変換する。


This document was generated using texi2html 1.78.