インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

インテルが提供するライブラリーの動的リンク

デフォルトでは、インテル® パフォーマンス・ライブラリーとインテルがサポートするライブラリーの一部は、実行ファイルに静的にリンクされます。そのため、ライブラリー・コードがビルドされるすべての実行ファイルにリンクされます。つまり、コードの重複が生じます。

場合によっては、これらのライブラリーは動的にリンクしたほうが良いことがあります。

指定するオプション:

Linux* および macOS*: -shared-intel
Windows*: /MD

メリット

  • 通常、実行ファイルのパフォーマンスにはそれほど影響しません。

  • このオプションを指定することで、デフォルトでは各実行ファイルに静的にリンクされるライブラリー・コード分だけ、各実行ファイルのコードサイズが減ります。これらのライブラリー・コードは、それを使用するすべての実行ファイルで共有され、実行ファイルとは別に生成されます。

デメリット

  • 実行ファイルが適切に動作するように、実行ファイルとともに依存するライブラリーも再配布する必要があります。

  • 静的にリンクする場合は、実際に使用されるライブラリー・コンテンツのみ実行ファイルにリンクされます。一方、動的にリンクする場合は、すべてのライブラリー・コンテンツが含まれます。そのため、1 つの実行ファイルをビルド/配布する場合、このオプションを使用する利点はありません。

  • 動的にリンクすると、静的にリンクする場合よりも、実行ファイルがはるかに小さくなります。しかし、実行ファイルと共有ライブラリーまたは DLL の合計サイズは、静的にリンクされた実行ファイルのサイズよりもはるかに大きくなります。