コンパイラー・オプションは、コンパイラー特性の設定、作成するオブジェクト・コードおよびコンパイラー出力の記述、およびある種のプリプロセッサー機能の実行など、広範囲にわたる機能を実行します。 コンパイラー・オプションは、次のいずれかの方法で指定することができます。
ユーザーが上記にリストされた方法で明示的に設定しなかったコンパイラー・オプションについては、コンパイラーはデフォルト設定を使用します。デフォルトは、コンパイラー・デフォルト、インストール・デフォルト、あるいは c89 ユーティリティーまたは xlc ユーティリティーによって設定されたデフォルトのいずれでも構いません。 コンパイラー・デフォルトは、インストール・デフォルトによってオーバーライドされ、インストール・デフォルトは、c89 ユーティリティーまたは xlc ユーティリティーで設定されたデフォルトによってオーバーライドされます。
コンパイラー・オプションを指定する際には、オプションの矛盾や非互換性が生じる可能性があります。 z/OS® XL C/C++ は、この矛盾や非互換性のほとんどを、次のような一貫した方式で解決します。
Source overrides Command overrides Configuration overrides Default
file -----------> line ----------> file -----------> settings
この方式に従わないオプションを以下の表に要約しています。
オプション | 矛盾するオプション | 解決 |
---|---|---|
-qxref | -qxref=FULL | -qxref=FULL |
-qattr | -qattr=FULL | -qattr=FULL |
-E | -o | -E |
-# | -v | -# |
-F | -B | -t |-W | -qpath| 構成ファイル設定 | -B| -t | -W |-qpath |
-qpath | -B| -t | -qpath が -B および -t をオーバーライドする |
一般には、同じオプションの変形が複数指定された場合は (xref および attr を除く)、コンパイラーは最後に指定されたオプションの設定を使用します。 コマンド行に指定するコンパイラー・オプションは、コンパイラーに処理させたい順序で指定する必要があります。
コマンド行フラグが複数のコンパイラー・プログラムで有効な 場合は (例えば、コンパイラー、バインダー、およびアセンブラーの プログラム名に適用される -B、-W、または -I の場合)、そのフラグを構成ファイル内の options、または asopt に指定する必要があります。コマンド行フラグは、該当するコンパイラー・プログラムに送信すべき順序で指定する必要があります。
矛盾するオプションの規則に対する 3 つの例外は、-Idirectory または -I//dataset_name、-llibrary、および -Ldirectory オプションです。これらは、複数回指定された場合は累積効果を持ちます。