静的リンク(静的ライブラリ)、動的リンク(共有ライブラリ)について

静的リンク、動的リンクについて、理解できてなかったので調べた。

まとめ

静的リンク

  • ライブラリのコードがアプリケーションの実行ファイルに直接リンクされる。
  • ライブラリは、静的ライブラリ(.aファイル)の形式で提供されることが一般的。
  • 実行ファイルは、必要なライブラリが含まれているため、必要なライブラリがインストールされていなくても実行できる。
  • ライブラリを更新する場合は、アプリケーションの再コンパイルが必要になる。
  • 実行ファイルのサイズが大きくなる。
  • バージョンの問題が発生することはない。

動的リンク

  • ライブラリのコードが実行ファイルに直接リンクされず、実行時に必要な場合に動的にロードされる。
  • ライブラリは、共有ライブラリ(.soファイル)の形式で提供されることが一般的。
  • 実行ファイルは、必要なライブラリがインストールされている場合にのみ実行できる。
  • ライブラリを更新する場合は、アプリケーションの再コンパイルが必要なくなる。
  • 実行ファイルのサイズが小さくなる。
  • バージョンの問題が発生する場合がある。

参考

ライブラリのリンク方法をきっちり区別しよう - Qiita