アットウィキロゴ

共有ライブラリについて

・共有ライブラリ

  共有ライブラリには以下の2種類ある
「静的ライブラリ(libxxx.a)」
…ビルド時に実行ファイルに含めてしまう(プログラムサイズ大きくなってしまう)
「動的ライブラリ(libxxx.so)」
…実行時に読み込む(プログラムサイズは小さく済むが、共有ライブラリがないとプログラムは実行できない)

  • 共有ライブラリへパスを通す
/etc/ld.so.confには共有ライブラリを検索するディレクトリを記述する。
( /lib と /usr/lib はデフォルトで検索に含まれる)

共有ライブラリの読み込みは、ダイナミックリンカld-linux.so.2(or 1)が行う。
ダイナミックリンカは直接/etc/ld.so.confを読まず、キャッシュ(/etc/ld.so.cache)を読む。
そのため/etc/ld.so.confを変更したり、共有ライブラリを追加した場合は、ldconfigコマンドでキャッシュに変更を反映する。

ldconfig [-p] (-pオプションで一覧表示)

  • 共有ライブラリの利用の確認
 ldd コマンドはコマンドラインで指定したプログラムや共有ライブラリについて、それぞれで必要とされる共有ライブラリを表示する。
ldd [オプション] [ファイル]

  • 共有ライブラリのパス
 環境変数 LD_LIBRARY_PATH で指定できる
 (ユーザーごとに共有ライブラリを追加したい場合)
最終更新:2011年03月09日 17:19