ライブラリのリンク形式が動的か静的かを指定します。
このオプションは、リンカーが動的 (共有) ライブラリを検索するのか、静的 (アーカイブ) ライブラリを検索するのかを指定します。-B オプションを使用すれば、同じコマンド行で指定を何回も切り替えることができます。このオプションはリンカー (ld) に渡されます。
Solaris 7 プラットフォームでは、必ずしもすべてのライブラリが静的ライブラリとして使用できるわけではありません。
binding は static か dynamic でなければなりません。
binding の値 |
意味 |
---|---|
dynamic |
まず liblib.so (共有) ファイルを検索するようにリンカーに指示します。これらのファイルが見つからないと、リンカーはliblib.a (静的で、共有されない) ファイルを検索します。ライブラリのリンク方式を共有にしたい場合は、このオプションを指定します。 |
static |
-Bstatic オプションを指定すると、リンカーは liblib.a (静的で、共有されない) ファイルだけを検索します。ライブラリのリンク形式を非共有にしたい場合は、このオプションを指定します。 |
(-B と static または dynamic との間に空白があってはなりません。)
-B を指定しないと、-Bdynamic が使用されます。
C++ のデフォルトのライブラリを静的にリンクするには、-staticlib オプションを使用します。
このオプションは、デフォルトで使用されるライブラリのリンクにも影響します。デフォルトのライブラリを動的にリンクするには、最後に指定する -B が -Bdynamic でなければなりません。
次の例では、libfoo.so があっても libfoo.a がリンクされます。他のすべてのライブラリは動的にリンクされます。
demo% CC a.o -Bstatic -lfoo -Bdynamic
-nolib、staticlib、ld(1)、「標準ライブラリの静的リンク」、 『リンカーとライブラリ』