インテル® C++ コンパイラは、ライブラリをリンク時には静的にリンクし、実行時には動的にリンクします。 実行時には、ライブラリはDSO (Dynamic Shared Object)としてリンクされます。
デフォルトでは、ライブラリは次のようにリンクされます。
この手法には、次の利点があります。
共用ライブラリに関する主なオプションは、-i_dynamicと-sharedです。
-i_dynamicオプションを使用して、インテルが提供するライブラリをすべて動的にリンクするように指定できます。このオプションの影響を、次のコマンドの比較で示します。1. prompt>icc prog.c
このコマンドによって、次の結果が生じます(デフォルト)。
静的にリンクされたライブラリを使用すると、アプリケーション・バイナリのサイズが大きくなります。しかし、静的にリンクされるライブラリは、アプリケーションが実行されるシステム上にインストールされている必要はありません。
2. prompt>icc -i_dynamic prog.c
このコマンドは、上記のライブラリをすべて動的にリンクします。これには、アプリケーション・バイナリのサイズが小さくなる利点があります。 しかし、この場合、すべてのダイナミック版ライブラリが、アプリケーションが実行されるシステム上にインストールされていなければなりません。
-sharedオプションは、実行ファイルの代わりにDSO (Dynamic Shared Object)を作成するように、コンパイラに指示します。詳細については、マニュアルのldのページを参照してください。