ldconfig 和 ldd

學長在 linux 機器上執行他用 intel compiler 編出來的程式時所發生的問題。
./a.out: error
while loading shared libraries: libguide.so: cannot open shared object file: No
such file or directory

這個問題是說找不到相關的 share libry 可以載入,可以透過 使用 ldd 確定因否真的是這個原因造成的。
[root@ms OpenMP]# ldd a.out
libm.so.6 => /lib/tls/libm.so.6 (0x40027000)
libguide.so => not found
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40078000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40080000)
libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
libdl.so.2 => /lib/libdl.so.2 (0x4008e000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

第 2 個 library 果然是出現找不到的訊息。
先修改 /etc/ld.so.conf,加上 library 所在的路徑,再重新執行 ldconfig -v 重建 /etc/ld.so.cache
就可以了,這樣程式執行時就可以找到 library 自動載入了。

迴響已關閉。

%d 位部落客按了讚: