矛盾するコンパイラー・オプションの解決

一般に、同じオプションの複数のバリエーションが指定されている場合は (-qxref-qattr を除く)、コンパイラーは最後に指定されたオプションの設定を使用します。コマンド行に指定するコンパイラー・オプションは、コンパイラーに処理させる順序で指定しなければなりません。

矛盾するオプションの規則には、 -Idirectory オプションおよび -Ldirectory オプションの 2 つの例外があります。 これらが複数回指定された場合には、その効果が累積されます。

多くの場合、コンパイラーは以下の順序で、矛盾または非互換のオプションを解決します。

  1. ソース・コード内のプラグマ・ステートメントは、コマンド行に指定されたコンパイラー・オプションをオーバーライドする。
  2. コマンド行に指定されたコンパイラー・オプションは、構成ファイルに指定されたコンパイラー・オプションをオーバーライドする。 矛盾したり非互換のコンパイラー・オプションがコマンド行に指定されると、コマンド行で後に現れたオプションが優先されます。
  3. 構成ファイルに指定されたコンパイラー・オプションは、コンパイラーのデフォルト設定をオーバーライドする。

すべてのオプションの矛盾が上記規則を使用して解決されるわけではありません。以下のテーブルは、例外とコンパイラーによるオプション間の矛盾の処理方法を要約したものです。

オプション 矛盾するオプション 解決
-qhalt -qhalt によって複数の重大度が指定されている 指定された中で最低の重大度
-qnoprint -qxref | -qattr | -qsource | -qlistopt | -qlist -qnoprint
-qfloat=rsqrt -qnoignerrno 最後に指定されたオプション
-qxref -qxref=FULL -qxref=FULL
-qattr -qattr=FULL -qattr=FULL
-p | -pg | -qprofile -p | -pg | -qprofile 最後に指定されたオプション
-E -P | -o | -S -E
-P -c | -o | -S -P
-# -v -#
-F -B | -t | -W | -qpath | 構成 ファイル設定 -B | -t | -W | -qpath
-qpath -B | -t -qpath-B-t をオーバーライドする
-S -c -S

関連情報