ライブラリとは
使用頻度の高い複数の機能をひとまとまりにしたもので、
プログラムの部品といえる。
プログラムの部品といえる。
■ダイナミックリンク
実行に必要なライブラリを、
実行時にロードモジュールにリンクするものがダイナミックリンク。
モジュールサイズを小さくできて、
ライブラリの更新がされた場合もライブラリを変更するだけですむ。
実行時にロードモジュールにリンクするものがダイナミックリンク。
モジュールサイズを小さくできて、
ライブラリの更新がされた場合もライブラリを変更するだけですむ。
■スタティックリンク
コンパイルされたロードモジュールに
最初からライブラリもリンクしてあるものがスタティックリンク。
ライブラリが更新されたら、コンパイルしなおさないといけない。
最初からライブラリもリンクしてあるものがスタティックリンク。
ライブラリが更新されたら、コンパイルしなおさないといけない。
ライブラリの種類
スタティックリンクライブラリ
これはプログラムに組み込んで最終的に実行ファイル形式内に
ソースを固定してしまうライブラリです。
実行ファイルを作成してしまったら変更が出来ない。
拡張子はlibになる。
ソースを固定してしまうライブラリです。
実行ファイルを作成してしまったら変更が出来ない。
拡張子はlibになる。
ダイナミックライブラリ
実行ファイルの中にソースを含めず、
実行中にライブラリを展開してその実行バイナリコードを使用できるライブラリです。
実行ファイルを作成した後もライブラリ自体の変更が可能で、
それにより実行ファイルの機能を変えたり拡張できたりする。
拡張子はdllになる。
実行中にライブラリを展開してその実行バイナリコードを使用できるライブラリです。
実行ファイルを作成した後もライブラリ自体の変更が可能で、
それにより実行ファイルの機能を変えたり拡張できたりする。
拡張子はdllになる。
共有ライブラリの確認
lddコマンド
通常、コマンドなどのプログラムは、メモリ上の共有ライブラリが参照・実行される。
「ldd」コマンドを実行することで、
プログラムやライブラリが参照する共有ライブラリを一覧表示する。
「ldd」コマンドを実行することで、
プログラムやライブラリが参照する共有ライブラリを一覧表示する。
# ldd /フルパスを引数にする
ldconfig
「ldconfig」は、ライブラリ名とライブラリが「格納」されている
ディレクトリ名の対応が記述されている
/etc/ld.so.conf
を参照し、その対応が記述された共有ライブラリキャッシュファイル
/etc/ld.so.cache
を作成します。これにより共有ライブラリを使用してプログラムを実行できるようになる。
ディレクトリ名の対応が記述されている
/etc/ld.so.conf
を参照し、その対応が記述された共有ライブラリキャッシュファイル
/etc/ld.so.cache
を作成します。これにより共有ライブラリを使用してプログラムを実行できるようになる。
# ldconfig
# ldconfig -p
オプション | 意味 |
-p | 現在キャッシュに保存されている内容を表示する |