Sun Studio 12 Update 1: C++ ユーザーズガイド

A.2.90 -staticlib=l[ ,l…]

-library オプションで指定されている C++ ライブラリ (そのデフォルトも含む)、-xlang オプションで指定されているライブラリ、-xia オプションで指定されているライブラリのうち、どのライブラリが静的にリンクされるかを指定します。

A.2.90.1 値

l には、次の値のいずれか 1 つを指定します。

表 A–20 -staticlib の値

値 

意味  

[no%]library

library を静的にリンクします [しません]。library に有効な値は、-library で有効なすべての値 (%all%none を除く)、-xlang で有効なすべての値、および (-xia に関連して使用される) interval です。

%all

-library オプション で指定されているすべてのライブラリと、-xlang オプションで指定されているすべてのライブラリ、-xia をコマンド行で指定している場合は区間ライブラリを静的にリンクします。

%none

-library オプションと -xlang オプションに静的に指定されているライブラリをリンクしません。-xia をコマンド行に指定した場合は、区間ライブラリを静的にリンクしません。

デフォルト

-staticlib を指定しないと、-staticlib=%none が想定されます。

-library のデフォルト値は Crun であるため、次のコマンド行は、libCrun を静的にリンクします。


example% CC –staticlib=Crun (correct)

これに対し、次のコマンド行は libgc をリンクしません。これは、-library オプションで明示的に指定しないかぎり、libgc はリンクされないためです。


example% CC –staticlib=gc (incorrect)

libgc を静的にリンクするには、次のコマンドを使用します。


example% CC -library=gc -staticlib=gc (correct)

次のコマンドは、librwtool ライブラリを動的にリンクします。librwtool はデフォルトのライブラリでもなく、-library オプションでも選択されていないため、-staticlib の影響はありません。


example% CC -lrwtool -library=iostream \
-staticlib=rwtools7 (incorrect)

次のコマンドは、librwtool ライブラリを静的にリンクします。


example% CC -library=rwtools7,iostream -staticlib=rwtools7 (correct)

次のコマンドは、Sun Performance Library を動的にリンクします。これは、-staticlib オプションを Sun Performance Library のライブラリのリンクに反映させるために -library=sunperf-staticlib=sunperf に関連させて使用する必要があるからです。


example% CC -xlic_lib=sunperf -staticlib=sunperf (incorrect)
 This command links the Sun Performance Libraries statically:

example% CC -library=sunperf -staticlib=sunperf (correct)

相互の関連性

このオプションは、置き換えられる代わりに蓄積されます。

-staticlib オプションは、-xia-xlang および -library オプションで明示的に選択された C++ ライブラリ、または、デフォルトで暗黙的に選択された C++ ライブラリだけに機能します。互換モードでは (-compat=[4])、libC がデフォルトで選択されます。標準モードでは (デフォルトのモード)、CstdCrun がデフォルトで選択されます。

-xarch=v9-xarch=v9a-xarch=v9b のいずれか、あるいは、64 ビットアーキテクチャーのオプションと同等のオプションを使用する場合、静的ライブラリとしては使用できない C++ ライブラリがあります。

警告

library に使用できる値は安定したものではないため、リリースによって変わることがあります。

-xarch=v9-xarch=v9a-xarch=v9b のいずれか、あるいは、64 ビットアーキテクチャーのオプションと同等のオプションを使用する場合、静的ライブラリとしては使用できない C++ ライブラリがあります。

64 ビット Solaris x86 プラットフォームでは、-staticlib=Crun および -staticlib=Cstd オプションは機能しません。どのプラットフォームであれ、これらのライブラリを静的にリンクすることは推奨しません。静的リンクすることによって、プログラムが機能しなくなることがあります。

関連項目

-library「12.5 標準ライブラリの静的リンク」