「共有ライブラリについて」の編集履歴(バックアップ)一覧はこちら
「共有ライブラリについて」(2011/03/09 (水) 17:19:55) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#back(text=戻る,right)
**・共有ライブラリ
共有ライブラリには以下の2種類ある
&color(red){「静的ライブラリ(libxxx.a)」}
…ビルド時に実行ファイルに含めてしまう(プログラムサイズ大きくなってしまう)
&color(red){「動的ライブラリ(libxxx.so)」}
…実行時に読み込む(プログラムサイズは小さく済むが、共有ライブラリがないとプログラムは実行できない)
-共有ライブラリへパスを通す
&color(red){/etc/ld.so.conf}には共有ライブラリを検索するディレクトリを記述する。
( &color(red){/lib と /usr/lib} はデフォルトで検索に含まれる)
共有ライブラリの読み込みは、ダイナミックリンカ&color(red){ld-linux.so.2(or 1)}が行う。
ダイナミックリンカは直接/etc/ld.so.confを読まず、キャッシュ(&color(red){/etc/ld.so.cache})を読む。
そのため/etc/ld.so.confを変更したり、共有ライブラリを追加した場合は、&color(red){ldconfig}コマンドでキャッシュに変更を反映する。
&color(red){ldconfig [-p] (-pオプションで一覧表示)}
-共有ライブラリの利用の確認
ldd コマンドはコマンドラインで指定したプログラムや共有ライブラリについて、それぞれで必要とされる共有ライブラリを表示する。
&color(red){ldd [オプション] [ファイル]}
#back(text=戻る,right)
**・共有ライブラリ
共有ライブラリには以下の2種類ある
&color(red){「静的ライブラリ(libxxx.a)」}
…ビルド時に実行ファイルに含めてしまう(プログラムサイズ大きくなってしまう)
&color(red){「動的ライブラリ(libxxx.so)」}
…実行時に読み込む(プログラムサイズは小さく済むが、共有ライブラリがないとプログラムは実行できない)
-共有ライブラリへパスを通す
&color(red){/etc/ld.so.conf}には共有ライブラリを検索するディレクトリを記述する。
( &color(red){/lib と /usr/lib} はデフォルトで検索に含まれる)
共有ライブラリの読み込みは、ダイナミックリンカ&color(red){ld-linux.so.2(or 1)}が行う。
ダイナミックリンカは直接/etc/ld.so.confを読まず、キャッシュ(&color(red){/etc/ld.so.cache})を読む。
そのため/etc/ld.so.confを変更したり、共有ライブラリを追加した場合は、&color(red){ldconfig}コマンドでキャッシュに変更を反映する。
&color(red){ldconfig [-p] (-pオプションで一覧表示)}
-共有ライブラリの利用の確認
ldd コマンドはコマンドラインで指定したプログラムや共有ライブラリについて、それぞれで必要とされる共有ライブラリを表示する。
&color(red){ldd [オプション] [ファイル]}
-共有ライブラリのパス
環境変数 &color(red){LD_LIBRARY_PATH} で指定できる
(ユーザーごとに共有ライブラリを追加したい場合)