Linux Hints & Tipsだワン!
スタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンクスタティック/ダイナミック・リンク

16.スタティック/ダイナミック・リンク

コマンドがどのライブラリーと紐つけられているかを調べる方法

lddコマンドを使います
 $ldd /usr/bin/make
 libc.so.6 => /lib/libc.so.6 (0x4001a000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

このようにライブラリー名が出るものはダイナミック・リンクされたコマンドです。

 fileコマンドではどちらかということまで表示されます。
 $file /usr/bin/make
make: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

 $ldd /usr/bin/make
 not a dynamic executable

このように表示されるものはスタティックなコマンドです。

 fileコマンドでは
 $file /usr/bin/make
make: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped

コマンドのサイズも10倍くらい違うのである程度予測がつきます。

ダイナミック・リンク make・・・144887バイト
スタティック・リンク make・・・1097156バイト


戻る
スタティック/ダイナミック・リンク