コマンド行でのコンパイラー・オプションの指定

コマンド行で指定されるほとんどのオプションは、オプションのデフォルト設定と、 構成ファイルに設定されたのオプションをオーバーライドします。 同様に、コマンド行に指定されたほとんどのオプションは順番にプラグマ・ディレクティブによってオーバーライドされ、それによりソース・ファイルの正にその中にコンパイラー・オプションを設定する方法が提供されます。この方式に従わないオプションについては、矛盾するコンパイラー・オプションの解決にリストします。

コマンド行オプションには、次の 2 種類があります。

-q オプション

構文図を読む構文図をスキップする>>- -q--option_keyword--+------------------+-------------------><
                        |    .-:---------. |
                        |    V           | |
                        '-=----suboption-+-'
 

-qoption_keyword 形式のコマンド行オプションは、オン/オフ・スイッチと似ています。 ほとんどの -q オプションでは、特定のオプションが複数回指定された場合は、そのオプションのうちコマンド行に最後に出現したものがコンパイラーによって認識されるオプションです。 例えば、-qsource はコンパイラー・リストを作成するためのソース・オプションをオンにし、-qnosource はソース・オプションをオフにするためソース・リストは作成されません。 例を以下に示します。

xlc -qnosource MyFirstProg.c -qsource MyNewProg.c

このように指定すると、MyNewProg.cMyFirstProg.c の両方のソース・リストが作成されます。その理由は、最後に指定された source オプション (-qsource) が優先されるためです。

同一コマンド行に複数の -qoption_keyword インスタンスを指定することができますが、これらのインスタンスはブランクで分離する必要があります。 オプション・キーワードは、大文字または小文字のいずれかで表示されますが、 -q は小文字で指定しなければなりません。 -qoption_keyword は、ファイル名の前または後に指定することができます。 例を以下に示します。

xlc -qLIST -qfloat=nomaf file.c
xlc file.c -qxref -qsource

多くのコンパイラー・オプションは省略することもできます。例えば、コマンド行に -qopt を指定すると、-qoptimize を指定したことと同等になります。

オプションの中には、サブオプションを持つものがあります。 -qoption の次に等号を使用して、これらのサブオプションを指定します。 オプションに複数のサブオプションを指定できる場合、 コロン (:) で、各サブオプションを次のサブオプションから分けなければなりません。 例を以下に示します。

xlc -qflag=w:e -qattr=full file.c

これは、報告されるメッセージの重大度レベルを指定するために、オプション -qflag を使用して、C ソース・ファイル file.c をコンパイルします。-qflag サブオプション w (警告) は、リストで報告される最小レベルの重大度を設定し、サブオプション e (エラー) は端末で報告される最小レベルの重大度を設定します。 -qflag オプション -qattr をサブオプション full と一緒に指定すると、プログラム内のすべての ID の属性リストが作成されます。

フラグ・オプション

Linux システムで使用可能なコンパイラーは、多くの共通の従来型フラグ・オプションを使用します。IBM XL C/C++ はこれらのフラグをサポートします。小文字のフラグは、その文字に対応する大文字フラグとは異なります。 例えば、-c-C は、 別々のコンパイラー・オプションです。-c は、 コンパイラーがプリプロセスとコンパイルのみを行い、リンケージ・エディターを 起動しないことを指定します。 一方、-C は、ユーザー・コメントの保存を 指定するために -P または -E とともに使用することができます。

IBM XL C/C++ は、他の Linux プログラミング・ツールおよびユーティリティー (例えば、Linux ld コマンド) に誘導されるフラグもサポートします。コンパイラーはリンク・エディット時に、ld に誘導されたこれらのフラグを渡します。

フラグ・オプションの中には、 フラグの一部を形成する引数を持つものがあります。 例を以下に示します。

xlc stem.c -F/home/tools/test3/new.cfg:xlc

ここで、new.cfg はカスタム構成ファイルです。

1 つのストリングで引数を取らないフラグを指定することができます。例を以下に示します。

xlc -Ocv file.c

これは、以下の指定と同じ効果があります。

xlc -O -c -v file.c

この場合、C ソース・ファイルの file.c を最適化 (-O) を使用してコンパイルし、コンパイラーの進行状態を報告し (-v) ますが、リンケージ・エディターを呼び出しません (-c)。

引数を取るフラグ・オプションは単一ストリングの一部として指定することができますが、引数を取るフラグは 1 つしか使用できず、そのフラグは最後に指定されるオプションでなければなりません。例えば、 他のフラグと一緒に -o フラグを (実行可能ファイルの名前を指定するために) 使用できるのは、-o オプションとその引数が最後に指定されている場合だけです。 例を以下に示します。

xlc -Ovo test test.c

これは、以下の指定と同じ効果があります。

xlc -O -v -otest test.c

ほとんどのフラグ・オプションは 1 文字ですが、中には 2 文字のものもあります。 -pg (拡張プロファイル) の指定は、 -p -g (プロファイルの -p、デバッグ情報の生成の -g) を指定することと同じではありませんので注意してください。 該当する文字の組み合わせを使用する別のオプションがある場合は、単一ストリングで複数のオプションを指定しないように注意してください。