動的リンク | Programming Place Plus 用語集

トップページ用語集

名称

解説

プログラム実行に必要なライブラリリンクする方式の1つで、ライブラリのコード実行可能ファイルから分離しておき、プログラムの実行時にリンクする方法のことです。

動的リンクでリンクするように設計されたライブラリを、動的リンクライブラリ(DLL)と呼びます。複数のプログラムから共有されることを前提としている場合、共有ライブラリと呼ばれることもあります。

動的リンク以外の方式として、静的リンクがあります。静的リンクは、ライブラリのコードを実行可能ファイルの中に含めてしまう方法です。

動的リンクでは、実行可能ファイルの中にはライブラリのコードを呼び出す部分は入っていますが、肝心の呼び出し先のコードが入っていません。そのため、実行可能ファイルがあるだけでは実行できず、必要なライブラリのファイルが発見できる場所に置かれている必要があります。

動的リンクでは、実行可能ファイルの中にローダ(ダイナミックリンカ)というプログラムを組み入れておき、実行時のリンク処理に用います。ローダを組み入れる処理をリンカが担うこともありますし(インポートライブラリを用いる)、プログラマーがローダの処理をソースファイルに記述する方法もあります。いずれにしても、すでにリンク済みになっている静的リンクと比べると、実行時にリンクの処理が行われる分だけ処理速度の面では劣ることになります。

一方、静的リンクと違って、同じライブラリを使うプログラムが複数あるときに、それぞれに同じコードを含まなくて済み、実行可能ファイルのサイズも小さくなります。また、ライブラリ側に更新があって、その内容を反映したいときに、プログラムをビルドしなおす必要がありません(API に変更があった場合は除く)。しかし、ライブラリのファイルを差し替えただけで、プログラムの動作に変更が加わることになるため、それが予期せぬ不具合につながる可能性もあります(DLL地獄)。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る