ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: C++ ユーザーズガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
これらのデフォルトコンパイラオプションファイルは、ユーザーがすべてのコンパイルに適用される (ほかの方法で上書きされる場合を除く)、一連のデフォルトオプションを指定することを許可します。たとえば、ファイルがすべてのコンパイルを —xO2 をデフォルトで行うことを指定したり、ファイル setup.il を自動的にインクルードしたりできます。
コンパイラは起動時に、すべてのコンパイルに含めるべきデフォルトオプションがリストされているデフォルトオプションファイルを検索します。環境変数 SPRO_DEFAULTS_PATH は、デフォルトファイルを検索するディレクトリのコロン区切りリストを指定します。
環境変数が設定されていない場合、標準のデフォルトセットが使用されます。環境変数が設定されているが空の場合、デフォルトは使用されません。
デフォルトファイルの名前は compiler.defaults の形式である必要があります。compiler は cc、c89、c99、CC、ftn、または lint のいずれかです。たとえば、C++ コンパイラのデフォルトは CC.defaults です
SPRO_DEFAULTS_PATH にリストされたディレクトリにコンパイラ用のデフォルトファイルが見つかった場合、コンパイラはファイルを読み取り、コマンド行でオプションを処理する前にオプションを処理します。最初に見つかったデフォルトファイルが使用され、検索は終了します。
システム管理者は、システム全体のデフォルトファイルを Studio-install-path/prod/etc/config に作成してもかまいません。環境変数が設定されている場合、インストールされたデフォルトファイルは読み取られません。
デフォルトファイルの形式はコマンド行と同様です。ファイルの各行には、1 つ以上のコンパイラオプションを空白で区切って含めてもかまいません。ワイルドカードや置換などのシェル展開は、デフォルトファイル内のオプションには適用されません。
—#、—###、および —dryrun の各オプションによって生成される詳細出力では、SPRO_DEFAULTS_PATH の値と、完全展開されたコマンド行が表示されます。
コマンド行でユーザーが指定するオプションは通常、デフォルトファイルから読み取られるオプションより優先されます。たとえば、—xO4 でのコンパイルがデフォルトファイルで指定されており、ユーザーがコマンド行で —xO2 を指定した場合、—xO2 が使用されます。
デフォルトオプションファイルに記載されているオプションの一部は、コマンド行で指定されたオプションのあとに付加されます。これらは、プリプロセッサオプション —I、リンカーオプション —B、—L、—R、 —l、および、ソースファイル、オブジェクトファイル、アーカイブ、共有オブジェクトなどのすべてのファイル引数です。
次に示すのは、ユーザー指定のデフォルトコンパイラオプション起動ファイルがどのように使用される可能性があるかの例です。
demo% cat /project/defaults/CC.defaults -I/project/src/hdrs —L/project/libs —llibproj —xvpara demo% setenv SPRO_DEFAULTS_PATH /project/defaults demo% CC —c —I/local/hdrs —L/local/libs —lliblocal tst.c
現在、このコマンドは次と同義です。
CC -fast —xvpara —c —I/local/hdrs —L/local/libs —lliblocal tst.c \ —I/project/src/hdrs —L/project/libs —llibproj
コンパイラデフォルトファイルはプロジェクト全体のデフォルトを設定するための便利な方法ですが、問題の診断を困難にする原因になる場合もあります。このような問題を回避するには、環境変数 SPRO_DEFAULTS_PATH を現在のディレクトリではなく絶対パスに設定します。
デフォルトオプションファイルのインタフェース安定性はコミットされていません。オプション処理の順序は、将来のリリースで変更される可能性があります。