ldd【コマンド】
コマンドだよ
UNIX系で使えるよ
使っている共有ライブラリを表示するよ
簡単に書くよ
ldd【コマンド】とは
コンピュータさんに対する命令文(コマンド)のひとつ
であり
指定したファイルで使っている共有ライブラリ
(いろいろなプログラムから使える、プログラムの部品)を表示するときに使うコマンド
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・共有
・ライブラリ
・共有ライブラリ
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
共有は、今回は「一緒に使おうね~」の意味です。
ライブラリは「プログラムの部品をいっぱい集めて、ひとまとめにしたファイル」です。
いろいろできる便利な部品が詰まっています。
共有ライブラリは「いろいろなプログラムから使えるライブラリ」です。
文字通り、共有して使えるライブラリです。
以上を踏まえて
「このファイルは、どんな共有ライブラリを使ってるのかな~?」を確認するときに使うコマンド
が「ldd」コマンドです。
「ldd」コマンドはUNIX系(LinuxとかMacとか)で使えます。
書き方は
ldd [オプション] [対象のファイル名]
です。
オプションは、ちょぼちょぼとあります。
| オプション | 説明 |
|---|---|
| -d | 「データ再配置を処理する」らしい |
| --data-relocs | 「データ再配置を処理する」らしい |
| -r | 「データと関数再配置を処理する」らしい |
| --function-relocs | 「データと関数再配置を処理する」らしい |
| -u | 使用されていない直接依存関係を表示する |
| --unused | 使用されていない直接依存関係を表示する |
| -v | 全ての情報を表示する |
| --verbose | 全ての情報を表示する |
| --help | ヘルプを表示する |
| --version | バージョン情報を表示する |
などです。
対象のファイルを指定して「ldd」コマンドを実行すると、共有ライブラリの依存関係(そのファイルがどんな共有ライブラリを使っているか)を表示してくれます。
例えば
ldd /usr/bin/ls
を実行したところ、私の環境(CentOS 7)では以下の内容が表示されました。
linux-vdso.so.1 => (0x00007fff455ae000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f2198947000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f2198742000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f2198538000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2198177000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f2197f16000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f2197cf0000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2197aec000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2198b73000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f21978e7000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f21976ca000)
見てもよく分かりませんが、きっと、これが「/usr/bin/ls」ファイルの使っている共有ライブラリなのでしょう。
なお、オプションの意味については、よく分かりませんでした。
興味がある人は他のところで調べてください。
一言でまとめるよ
まぁ「ldd」ってコマンドが出てきたら「使っている共有ライブラリ
(いろいろなプログラムから使える、プログラムの部品)を表示するときに使うんだな~」と お考えください。
おまけ
■訳してみるよ
「ldd」は「list dynamic dependencies(リスト・ダイナミック・ディペンデンシーズ)」の略だそうです。
「list(リスト)」の意味は「一覧表」とか「一覧表にする」とかです。
「dynamic(ダイナミック)」の意味は「動的な」とかです。
「dependencies(ディペンデンシーズ)」は「dependency(ディペンデンシー)」の複数形です。
「dependency(ディペンデンシー)」の意味は「依存状態」とかです。
何となく くっつけると
動的な依存状態を一覧表にする
となります。
■検索してみる?






