Linux,静的ライブラリ(.a)と共有ライブラリ(.so)

スポンサーリンク

鍛錬 128

Linux,静的ライブラリ(.a)と共有ライブラリ(.so)

Linux の静的ライブラリと共有ライブラリにおける、拡張子や挙動の違いについてです。

スポンサーリンク

拡張子

以下は、静的ライブラリと共有ライブラリの慣習的な拡張子です。

種別 拡張子
静的ライブラリ .a
共有ライブラリ .so
スポンサーリンク

挙動の違い

以下は、次の 2 つの条件を満たす場合の、静的ライブラリと共有ライブラリの挙動の違いについてです。

  • 同じライブラリの関数を、複数のプログラムが使用している場合。
  • 複数のプログラムを、同時に実行している場合。
種別 機能
静的ライブラリ アプリケーションごとに、
関数のコピーがメモリに展開される。
共有ライブラリ メモリに展開された 1 つのコピーを、
複数のアプリケーションが同時に使用する。

 
上記に示した通り、共有ライブラリを使用すると、静的ライブラリと比べてメモリを節約することが可能です。

タイトルとURLをコピーしました