ライブラリ | 説明 | ||
静的ライブラリ | ビルド時に実行ファイル内に組み込まれる メリット:実行ファイルのみで動作できる。別環境で動作可能 デメリット:実行ファイルサイズが大きくなる | ||
共有ライブラリ | プログラム実行時にロードされ、複数のプログラム間で共有される メリット:実行ファイルサイズを小さくできる デメリット:実行時に適切に設置されたライブラリが必要 |
リンク | 説明 | ||
スタティックリンク | ビルド時にライブラリの機能を実行ファイルに組み込む。 この時に組み込まれるライブラリが静的ライブラリ | ||
ダイナミックリンク | 実行時にライブラリを呼び出す。 この時に呼び出されるライブラリを共有ライブラリ |
一般的に「/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:<設定したいディレクトリ>