コンパイラー・オプションについて

コンパイラー・オプションは、さまざまな関数を実行します。 例えば、コンパイラー特性の設定、生成されるオブジェクト・コードの記述、 出力される診断メッセージの制御、および一部のプリプロセッサー関数の実行などです。 コンパイラー・オプションは、コマンド行、構成ファイル内、ソース・コード内、 またはこれらの技法の組み合わせで指定できます。 明示的に設定されないほとんどのオプションが、デフォルト設定を受け入れます。

複数のコンパイラー・オプションを指定した場合、オプションの矛盾や非互換が起きる可能性があります。 このような矛盾を一貫性のある方法で解決するために、これ以外の順位が指定されていない限り、 コンパイラーは次の優先順位を適用します。

  1. ソース・ファイルのオーバーライド
  2. コマンド行のオーバーライド
  3. 構成ファイルのオーバーライド
  4. デフォルト設定

一般に、複数のコマンド行オプションでは、最後に指定されたものが優先されます。

注:
-I コンパイラー・オプションは特殊なケースです。 コンパイラーは、コマンド行で -I を使用して 指定されたディレクトリーを検索するに、vac.cfg ファイル内の -I で指定されたディレクトリーを検索します。 これらのオプションは、先に認識されたものが優先されるのではなく、 後から認識されたものが優先されます。

後から認識されたものが優先されるその他のオプションには 、-R-l (小文字の L) があります。

関連参照


コンパイラー・メッセージ

XL C/C++ は、診断メッセージを 5 つのレベルに分類します。 各重大度レベルは、コンパイラーの応答に関連付けられています。 すべてのエラーでコンパイルが停止されるわけではありません。 次の表に、重大度レベルに割り当てられた省略形と、 関連付けられているコンパイラーの応答を示します。


重大度レベルとコンパイラーの応答
文字 重大度 コンパイラーの応答
I 通知 コンパイルは継続します。 このメッセージは、コンパイルと途中で検出された条件を報告します。
W 警告 コンパイルは継続します。 このメッセージは、有効であり、意図したものではない条件を報告します。
C E
エラー コンパイルは継続し、オブジェクト・コードが生成されます。 コンパイラーが訂正することのできるエラー条件が存在しますが、 プログラムは期待される結果を作成できない可能性があります。
S 重大エラー コンパイルは継続しますが、 オブジェクト・コードは生成されません。 コンパイラーが訂正できないエラー条件が存在します。
U 回復不能エラー コンパイラーは停止します。 回復不能エラーが見つかりました。 メッセージがリソースの限界 (例えばファイル・システムまたはページング・スペースがいっぱいになった) を 示している場合は、リソースを追加して再コンパイルしてください。異なるコンパイラー・オプションが必要であると示された場合は、 それらを使用して再コンパイルしてください。 メッセージが内部コンパイラー・エラーを示す場合は、 そのメッセージを IBM 技術員に報告してください。

コンパイラーのデフォルトの動作は、オプション -qnoinfo または -qinfo=noall でコンパイルすることです. -qinfo のサブオプションは、 特定のカテゴリーの情報診断を指定する機能を提供します。 例えば、-qinfo=por は、 移植性の問題に関連するメッセージへの出力を制限します。

注:
C では、サブオプションなしで指定されるオプション -qinfo-qinfo=all に相当します。C++ では、サブオプションなしで指定される -qinfo-qinfo=all:noppt に相当します。

戻りコード

コンパイルの終了時に、 コンパイラーは、 以下の任意の条件のもとで戻りコードをゼロに設定します。

それ以外の場合、コンパイラーは「XL C/C++ コンパイラー・リファレンス」に記載されている戻りコードの 1 つを設定します。

関連参照

コンパイラー・メッセージ・フォーマット

デフォルトでは、診断メッセージは次の形式になります。

"file", line line_number.column_number: 15cc-nnn (severity) message_text.

ここで、15 はコンパイラー製品 ID、cc は、 メッセージを発行したコンパイラー・コンポーネントを示す 2 桁のコード、nnn は メッセージ番号、さらに、severity は重大度レベルの文字です。 cc に指定できる値は、以下のとおりです。

00
メッセージを生成または最適化するコード
01
コンパイラー・サービス・メッセージ
05
C コンパイラーに固有のメッセージ
06
C コンパイラーに固有のメッセージ
40
C++ コンパイラーに固有のメッセージ
86
プロシージャー間分析 (IPA) に固有のメッセージ

この形式は、 -qnosrcmsg オプションを使用可能にしてコンパイルする場合と同じです。 診断メッセージとともにソース行を表示する代替メッセージ・フォーマットにするには 、-qsrcmsg オプションでのコンパイルを試行してください。 このオプションを使用可能にすると、エラーがあるとコンパイラーが判断した ソース行、その下 (2 行目) にそのソース行の特定の箇所を指し示す行 (可能な場合)、および 診断メッセージを、標準エラーに出力するようにコンパイラーに指示します。

注:
メッセージは、他のプログラムの入力として使用するためのものではありません。 メッセージのフォーマットおよび内容は、プログラミング・インターフェースにするためのものではなく、リリース毎に変更する可能性があります。

関連参照


プラットフォーム固有のオプション

このページでは、Linux プラットフォームでの コンパイラー使用の基本となるオプションについて説明します。

詳細については、「XL C/C++ コンパイラー・リファレンス」を参照してください。

Linux プラットフォーム特有の選択可能コンパイラー・オプション
オプション名 説明
-qgcc_c_stdinc=<paths> GNU C ヘッダーのディレクトリー検索パスを指定します。
-qgcc_cpp_stdinc=<paths> GNU C++ ヘッダーのディレクトリー検索パスを指定します。
-qc_stdinc=<paths> IBM C ヘッダーのディレクトリー検索パスを指定します。
-qcpp_stdinc=<paths> IBM C++ ヘッダーのディレクトリー検索パスを指定します。

次のオプションは、ディレクトリー検索パス特有の制御を提供します。 これらのオプションは、先に認識されたものが優先されるのではなく、 後から認識されたものが優先されます。 オプション -L-R、 および -l (小文字の L) でコマンド行に指定されたパスは、 リンク時の優先順位が、構成ファイルにオプションとして指定されたパスよりも低くなりますが、 構成ファイルの属性として指定されたパスよりは高くなります。

選択可能なパス制御オプション
オプション名 説明
-I #include ファイルを検索する追加のディレクトリー・パスを指定します。
-l 静的にリンクする共用ライブラリーまたはアーカイブ・ファイルを指定します。
-L リンク時に検索するライブラリー検索パスを指定します。
-R 動的にロードされたライブラリーを実行時に検索するディレクトリー・パスを指定します。

関連参照

IBM Copyright 2003