「共有ライブラリの管理」の編集履歴(バックアップ)一覧はこちら
「共有ライブラリの管理」(2011/08/19 (金) 13:25:28) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*【ライブラリ】
ライブラリとは、よく使われる機能をまとめ、他のプログラムから利用できるようにしたもの。
&bold(){静的ライブラリ}
プログラムの作成時にその実行ファイル内に組み込まれるライブラリ。
&bold(){共有ライブラリ}
プログラムの実行時にロードされ、複数のプログラム間で共有されるライブラリ。
「/lib」、「/usr/lib」に配置される。
「lib~.so~」という名前がつけられる。
----
*【リンク】
プログラム本体からライブラリの機能(関数)を呼び出して利用すること。
&bold(){スタティック(静的)リンク}
コンパイルをする時点で、コンパイラがライブラリから機能を取り出し、実行ファイル内に埋め込む。
よく使われるライブラリの機能が、様々な実行ファイル内に重複して入ってしまう。
&bold(){ダイナミック(動的)リンク}
実行ファイルへライブラリの機能を埋め込むことはせず、実行時にライブラリの機能を呼び出す。
ダイナミックリンクによって呼び出されるライブラリを共有ライブラリという。
#image(リンク.gif)
----
*【コマンド】
&bold(){[[ldd>>http://linuxjm.sourceforge.jp/html/ld.so/man1/ldd.1.html]]}
プログラムで必要なライブラリを検索、表示する。
&bold(){[[ldconfig>>http://linuxjm.sourceforge.jp/html/ld.so/man8/ldconfig.8.html]]}
ライブラリ名とライブラリが格納されているディレクトリ名の対応が記述されている、「/etc/ld.so.conf」ファイルを参照し、その対応が記述された共有ライブラリキャッシュファイルである「/etc/ld.so.cache」ファイルを作成する。
ldconfigコマンドを使用するのは、「共有ライブラリに変更を加えたとき」となる。
&bold(){ldd、ldconfigコマンドで標準的に検索される場所}
コマンドライン
環境変数「LD_LIBRARY_PATH」で指定されたライブラリ
「/etc/ld.so.conf」ファイルで指定されたライブラリ
共有ライブラリが置かれているディレクトリ(「/usr/lib」、「/lib」)
----
*【環境変数】
&bold(){LD_LIBRARY_PATH}
それぞれのユーザがファイルを実行する際に、共有ライブラリに組み込むディレクトリを格納したもの。それぞれのユーザ固有の設定となる。
環境変数の設定は、一般ユーザでも行える。
*【ライブラリ】
ライブラリとは、よく使われる機能をまとめ、他のプログラムから利用できるようにしたもの。
&bold(){静的ライブラリ}
プログラムの作成時にその実行ファイル内に組み込まれるライブラリ。
&bold(){共有ライブラリ}
プログラムの実行時にロードされ、複数のプログラム間で共有されるライブラリ。
「/lib」、「/usr/lib」に配置される。
「lib~.so~」という名前がつけられる。
----
*【リンク】
プログラム本体からライブラリの機能(関数)を呼び出して利用すること。
&bold(){スタティック(静的)リンク}
コンパイルをする時点で、コンパイラがライブラリから機能を取り出し、実行ファイル内に埋め込む。
よく使われるライブラリの機能が、様々な実行ファイル内に重複して入ってしまう。
&bold(){ダイナミック(動的)リンク}
実行ファイルへライブラリの機能を埋め込むことはせず、実行時にライブラリの機能を呼び出す。
ダイナミックリンクによって呼び出されるライブラリを共有ライブラリという。
#image(リンク.gif)
----
*【コマンド】
&bold(){[[ldd>>http://linuxjm.sourceforge.jp/html/ld.so/man1/ldd.1.html]]}
プログラムで必要なライブラリを検索、表示する。
&bold(){[[ldconfig>>http://linuxjm.sourceforge.jp/html/ld.so/man8/ldconfig.8.html]]}
ライブラリ名とライブラリが格納されているディレクトリ名の対応が記述されている、「/etc/ld.so.conf」ファイルを参照し、その対応が記述された共有ライブラリキャッシュファイルである「/etc/ld.so.cache」ファイルを作成する。
ldconfigコマンドを使用するのは、「共有ライブラリに変更を加えたとき」となる。
&bold(){ldd、ldconfigコマンドで標準的に検索される場所}
コマンドライン
環境変数「LD_LIBRARY_PATH」で指定されたライブラリ
「/etc/ld.so.conf」ファイルで指定されたライブラリ
共有ライブラリが置かれているディレクトリ(「/usr/lib」、「/lib」)
----
*【環境変数】
&bold(){LD_LIBRARY_PATH}
それぞれのユーザがファイルを実行する際に、共有ライブラリに組み込むディレクトリを格納したもの。それぞれのユーザ固有の設定となる。
環境変数の設定は、一般ユーザでも行える。
----