# ライブラリ
##### ライブラリとは
|| ライブラリ | 説明 ||
| 静的ライブラリ | ビルド時に実行ファイル内に組み込まれる\\ メリット:実行ファイルのみで動作できる。別環境で動作可能\\ デメリット:実行ファイルサイズが大きくなる |
| 共有ライブラリ | プログラム実行時にロードされ、複数のプログラム間で共有される\\ メリット:実行ファイルサイズを小さくできる\\ デメリット:実行時に適切に設置されたライブラリが必要 |
##### リンクとは
|| リンク | 説明 ||
| スタティックリンク | ビルド時にライブラリの機能を実行ファイルに組み込む。\\ この時に組み込まれるライブラリが静的ライブラリ |
| ダイナミックリンク | 実行時にライブラリを呼び出す。\\ この時に呼び出されるライブラリを共有ライブラリ |
##### 共有ライブラリの確認
一般的に「/lib」または「/usr/lib」に配置されている。
ファイル名は「libxxx.so~」の形式が多い
実行ファイルが必要とする共有ライブラリは「ldd」コマンドで確認できる。
##### 共有ライブラリの検索
上記のように、一般的には「/lib」または「/usr/lib」に共有ライブラリを配置する場合には、追加で操作は不要となる。
ただし、それ以外の場所に配置する場合には、配置場所のパスを設定する必要がある。
パスの設定方法は2通りある。
1.「/etc/ld.so.conf」ファイルに設定(永久設定)
$ sudo vi /etc/ld.so.conf
# 配置したディレクトリの絶対パスを記載する
$ ldconfig
# .etc/ld.so.cacheを更新
2.環境変数「LD\_LIBRARY\_PATH」の設定(一時設定)
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<設定したいディレクトリ>