大部分的程式都會用到其他的程式庫,
Linux上的程式也不例外,
要知道某支程式用了哪些程式庫,
只要利用ldd這支程式,例如:
>ldd /bin/ls
librt.so.1 => /lib/librt.so.1 (0x40018000)
libc.so.6 => /lib/libc.so.6 (0x40029000)
這樣就可得知ls如果要拿到別台機器上跑,
那跑的機器就必須有libc及librt這兩支函式庫
但有了也不代表ls就能正常執行,還要版本正確才行
看起來很複雜,其實大部分的情況只要確定libc的版本正確就可以了
這也就是為什麼同一個rpm套件要分那麼多版本,
for redhat 6.2的,不能灌在7.0上,主要的原因就是libc版本不同
很複雜吧,目前要做到同一支程式,可在不同的unix機器上面跑,
唯一百分百可行的方式,還是重新compile source code