ライブラリの種類の1つで、プログラムの実行時に、必要に応じてロード、リンクする方式を採るものを指します。
実行可能ファイルとは別に、外部のファイルとして作られます。Windows では、おもに .dll という拡張子を持ったファイルとして実装されます。Linux などでは .so という拡張子を持つファイルであり、共有ライブラリ(Shared Library)と呼ばれます。
プログラムの実行時にロードし、リンクを行います。このような仕組みを動的リンクと呼びます。そのため、必要なライブラリが適切な場所に存在していないと、プログラムの作りによっては実行時にエラーを起こして強制終了(異常終了)することになります。
同じライブラリを使う複数のアプリケーションとのあいだで共有できることが特徴的です。このため、アプリケーション本体のサイズを小さく抑えられますし、メモリに同じライブラリのコードをロードしておく必要がなく、メモリ使用量の削減につながる可能性があります。また、多くのアプリケーションで必要になる共通的なコードを、それぞれのアプリケーションの開発者が実装する必要がなく、無駄な労力を避ける効果もあります(車輪の再発明の回避)。たとえば Windows API は、動的リンクライブラリとして実装されているため、Windows で動作するアプリケーションのほとんどは、共通のライブラリの実装を共有できます。
プログラム本体のソースコードを一切書き換えることなく、ライブラリ側だけを修正することで、アプリケーションの動作を更新できます。ただしこれに伴って、互換性の問題を起こす可能性があります(DLL地獄)。たとえば、古いバージョンのライブラリの動作に依存していたプログラムが、突然正常に動作しなくなる恐れがあります。
動的リンクおよび動的リンクライブラリに対して、プログラム開発時に、実行可能ファイルの内部に含めておく方式を静的リンクといい、そのようなライブラリを静的リンクライブラリと呼びます。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
![]() |
管理者情報 | プライバシーポリシー |