共有ライブラリ
共有ライブラリ(shared library)
いくつか共有ライブラリの意味が分かれるような?
.so, .dllなどの動的リンクされるファイルを指して共有ライブラリ
ライブラリの用語の意味と同じで汎用的な関数、定義を集めでひとまとまりにしたもの
説明の抽象度?が違うだけで意味は同じか
.so共有ライブラリはリンカを使用して作られる
静的リンク(static lnking)
プログラムのリンク時に、ライブラリを使用するプログラムの中にライブラリを埋め込む
メリット
共有ライブラリの情報を読みだす際のオーバーヘッドがなくなる
デメリット
実行ファイルのサイズが大きくなる
.aは静的ライブラリ
.aはarコマンドで作られるアーカイブファイル
動的リンク(dynamic linking)
プログラムを動かすときにライブラリを組み込む
動的リンクされるためのファイルは動的ライブラリ
メリット
ライブラリが別ファイルになるので実行ファイル自体のファイルサイズは小さくなる
ライブラリを変更しても実行ファイルを再コンパイルする必要がなくなる
Linuxは.soが動的ライブラリ
macOSは.dylib or .so
Windowは.dll
DLL
コマンド
ldd
ldconfig
確認用
Q. 共有ライブラリ
Q. 静的リンク
Q. 静的リンクのメリット・デメリット
Q. 動的リンク
Q. 動的リンクのメリット・デメリット
Q. 静的リンクと動的リンクの違い
参考
https://youtu.be/iA9i6jm9z-g?si=YGwPKT_qGUnwPgZ9
関連
アーカイブファイル
メモ
Shared Libraries
調査用
/pogi-log/Google.icon 共有ライブラリ
/pogi-log/Wikipedia.icon
共有ライブラリ - Wikipedia(日)
共有ライブラリ(検索) - Wikipedia(日)
/pogi-log/Wikipedia.icon
Shared library - Wikipedia(英)
Shared library(検索) - Wikipedia(英)