![未找到库文件,即使它们已在 ldconfig 中列出](https://linux22.com/image/115230/%E6%9C%AA%E6%89%BE%E5%88%B0%E5%BA%93%E6%96%87%E4%BB%B6%EF%BC%8C%E5%8D%B3%E4%BD%BF%E5%AE%83%E4%BB%AC%E5%B7%B2%E5%9C%A8%20ldconfig%20%E4%B8%AD%E5%88%97%E5%87%BA.png)
这是一个令人头疼的问题。
以下是输出ldconfig -p | grep libncur*
:
libncursesw.so.5 (libc6,x86-64) => /usr/lib64/libncursesw.so.5
libncursesw.so (libc6,x86-64) => /usr/lib64/libncursesw.so
libncurses.so.5 (libc6,x86-64) => /usr/lib/libncurses.so.5
libncurses.so.5 (libc6,x86-64) => /usr/lib64/libncurses.so.5
libncurses.so.5 (libc6,x86-64) => /lib/libncurses.so.5
libncurses.so (libc6,x86-64) => /usr/lib64/libncurses.so
这是我得到的错误:
/cass/bin/m050ub02: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
显然,这些库已在 ldconfig 缓存中列出,但似乎找不到它们。
答案1
尝试这个:
strace -e open /cass/bin/m050ub02
这应该告诉您二进制文件正在尝试打开什么。也尝试一下
echo $LD_LIBRARY_PATH
看看你的图书馆是否在那里。如果没有,请尝试将它们符号链接到该路径上的某个位置。
答案2
问题已经解决了。事实证明它们是 64 位的库,我找到了 32 位的库,现在一切正常。