コンパイル時、ライブラリのリンクが動的であるか静的であるかを指定できます。このようなオプションは実際にはリンカーオプションですが、コンパイラによって認識されリンカーに渡されます。
–Bdynamic は、可能であれば必ず共有動的リンクの優先を設定します。– Bstatic は、リンクを静的ライブラリだけに制限します。
静的バージョンと動的バージョンの両方とも利用できるとき、このオプションを使用して、コマンド行上から設定を切り替えます。
f95 prog.f -Bdynamic -lwells -Bstatic -lsurface
実行可能ファイル全体に対して動的リンクを許可または禁止します。このオプションをコマンド行で使用できるのは 1 回だけです。
–dy は、動的共有ライブラリへのリンクを許可します。-dn は、動的ライブラリへのリンクを禁止します。
libm.a や libc.a などの静的システムライブラリによっては、Solaris の 64 ビットオペレーティング環境では使用できないものもあります。このようなライブラリは動的ライブラリ専用として提供されます。64 ビット環境で -dn を使用すると、いくつかの静的システムライブラリが見つからないことを示すエラーが出力されます。また、コンパイラのコマンド行を -Bstatic で終了しても同じ結果になります。
特定のライブラリの静的バージョンとリンクするには、次のようなコマンド行を使用します。
f95 -o prog prog.f -Bstatic -labc -lxyz -Bdynamic
この場合、ユーザーの libabc.a と libxyz.a ファイルがリンクされて (libabc.so や libxyz.so ではない)、最後の -Bdynamic によってシステムライブラリを含めて残りのライブラリが動的にリンクされます。
さらに複雑な状況では、適切な -Bstatic や -Bdynamic を必要に応じて使用して、リンク手順で各システムライブラリとユーザーライブラリを明示的に参照する必要があります。まず、LD_OPTIONS に '-Dfiles' を設定して、必要なライブラリをすべてリストします。次に、-nolib (システムライブラリの自動リンクを抑制する) を指定してリンク手順を実行し、必要なライブラリを明示的に参照します。次に例を示します。
f95 -m64 -o cdf -nolib cdf.o -Bstatic -lsunmath \ -Bdynamic -lm -lc