共有ライブラリについて


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

・共有ライブラリ

  共有ライブラリには以下の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  で指定できる
 (ユーザーごとに共有ライブラリを追加したい場合)