| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
この節では、GCC の動作に関係する環境変数について説明する。 これらの環境変数のうちのいくつかの仕事は、色々な種類のファイルを検索するときに 使うディレクトリやプレフィックスを指定することである。 またいくつかは、コンパイル環境の他の側面を指定するのに使われる。
また、検索場所を指定するのに ‘-B’、‘-I’、‘-L’ (see section ディレクトリ検索用オプション)等のオプションを使うことが出来ることに注意。 これらのオプションは、環境変数で指定された場所よりも優先する。 また、環境変数による指定は、GCC のコンフィギュレーションで 指定された場所よりも優先する。See section コンパイラドライバ ‘gcc’ の制御。
LANGLC_CTYPELC_MESSAGESLC_ALLこれらの環境変数は、GCC が、地域化(localization)情報を、
異なる国の習慣とともに動作することが可能になるように使う方法を
制御する。
GCC は、コンフィギュレーションで指定されていれば、
ロケール・カテゴリ LC_TYPE と LC_MESSAGES を調べる。
これらのロケール・カテゴリには、読者のインストールでサポートされている
任意の値を設定できる。
代表的な値は、英国(United Kingdom)の英語を表す ‘en_UK’ である。
環境変数 LC_CTYPE は、文字の分類を指定する。
GCC はこれを使って、文字列中の文字の境界を決定する。
これは、いくつかのマルチバイトのエンコーディングで必要になる。
これらのエンコーディングでは、文字の境界がわからないと、
文字列の終了やエスケープとして解釈されてしまうような引用文字やエスケープ
文字が含まれている。
環境変数 LC_MESSAGES は、診断メッセージで使うべき言語を指定する。
環境変数 LC_ALL が設定されていると、LC_CTYPE と
LC_MESSAGES の値を上書きする。設定されていないと、
LC_CTYPE と LC_MESSAGES のデフォルトは、
環境変数 LANG の値となる。
これらのどの変数も設定されていない場合は、GCC は伝統的な C の
英語の動作をデフォルトにする。
TMPDIRTMPDIR が定義されていれば、その値で一時ファイルを置くディレクトリを
指定する。GCC は一時ファイルを使ってコンパイルの一つのステージの
出力を保持する。それが次のステージの入力として使われる。
例えば、プリプロセッサの出力は、コンパイラ本体への入力になる。
GCC_EXEC_PREFIXGCC_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_PATHCOMPILER_PATH の値はコロンで区切ったディレクトリのリストであり、
PATH に良く似ている。GCC は、GCC_EXEC_PREFIX を
使ってサブプログラムを見つけられなかった場合に、
これで指定されたディレクトリからサブプログラムを探す。
LIBRARY_PATHLIBRARY_PATH の値はコロンで区切ったディレクトリのリストであり、
PATH に良く似ている。ネイティブコンパイラとしてコンフィギュレーション
を行なった場合は、GCC は、特別なリンカファイルを検索するときに、
GCC_EXEC_PREFIX を使っても見つけられないときは、
このように指定されたディレクトリを使う。
GCC を使ってリンクを行なうときも、‘-l’ で指定された通常の
ライブラリを探すときに、これらのディレクトリを使う(ただし、
‘-L’ で指定されたディレクトリがまず検索される)。
C_INCLUDE_PATHCPLUS_INCLUDE_PATHOBJC_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-JISJIS コード文字を認識する。
C-SJISSJIS コード文字を認識する。
C-EUCJPEUCJP コード文字を認識する。
LANG が定義されていなかったり、上記以外の値になっている場合は、
GCC はデフォルトのロケールで定義される ‘mblen’ と ‘mbtowc’ を
使って、マルチバイト文字を認識し変換する。
This document was generated
using texi2html 1.78.