DLL地獄
この現象が起きる理由としてさまざまなことを挙げることが出来るが、最大の問題は「共有ライブラリに対し互換性を失うような変更が行われた場合に、ライブラリを呼び出すプログラム側がそれを区別することができない」という点に起因する。
プログラムの保守・可読性の向上や、セキュリティ問題等に起因するやむをえない仕様変更等により、あるプログラムにおいて旧バージョンとの互換性が失われてしまうことは、本来は極力避けるべき行為であるが、実際にはよく起こる現象である。これが動的にリンクされる共有ライブラリの場合、その互換性が失われた部分の機能を利用するアプリケーションにとっては、アプリケーション自体の動作に支障をきたすことになる。特に OS 本体に同梱されるライブラリにおいてこのような変更が行われると、その影響範囲は極めて広い範囲に及ぶ。
また、ソフトウェアのインストーラがシステムの共有ライブラリのバージョンチェックを行わず、古いバージョンに置換してしまうことでも発生する。