[ C++で開発 ]
動的共有ライブラリ・ファイルを使う目的の一つに、ライブラリ側の修正時にライブラリ・ファイルだけを差し替えるだけで対応できることがあります。しかし、C++の場合、ライブラリ・ファイルだけを差し替える修正(通常「バイナリ互換性」という)なのか、ライブラリを利用するクライアントコードも再コンパイルが必要なのか判断するのはかなり難しい課題です。たいていは判断が面倒なので、「全コンパイル」することが多いですね。
本記事において使用する用語の定義を以下に記述します。
C++は、コンパイラの種類によって、または同じコンパイラでもバージョンの違いによって、バイナリ・ファイルのシンボル方式が異なります。