【问题标题】:libm.so.6: cannot open shared object file: No such file or directorylibm.so.6:无法打开共享对象文件:没有这样的文件或目录
【发布时间】:2016-10-06 19:29:10
【问题描述】:
我在 Centos 6.8 中安装了一个程序,运行该程序时,我收到错误
“加载共享库时出错:libm.so.6:无法打开共享对象文件:没有这样的文件或目录”
当我使用 ldd 命令检查程序的链接库时,我可以看到 libm.so.6 具有正确的 64 位
“libm.so.6 => /lib64/libm.so.6 (0x0000003a19000000)”
这意味着,库已安装并已添加到环境变量 LD_LIBRARY_PATH
另一个使用 libm.so.6 的程序运行良好。
任何人都可以帮助解决这个问题吗?
谢谢
【问题讨论】:
标签:
centos6
glibc
shared
ldd
【解决方案1】:
在编程中,细节很重要。
可以说,我要运行的程序是 ABC 并安装
这不是细节,这是一个假设。如果你想要有用的答案,你应该提供你被要求的实际详细信息。特别是,编辑您的问题(而不是评论不同的无用答案),然后执行以下操作:“显示您实际运行的 ldd 命令及其实际输出。”
也就是说,如果ldd /usr/local/ABC/bin/ABC 确实显示libm.so.6 => /lib64/libm.so.6,那么ABC 就无法不找到libm.so.6。
因此我们必须得出结论ABC 调用了一些其他 程序,而那个 程序找不到libm.so.6。你可以通过运行来确认这个猜测:
LD_DEBUG=files,libs /usr/local/ABC/bin/ABC
这将表明ABC 确实找到了libm.so.6,它调用了哪些其他程序,以及该其他程序在哪里寻找libm.so.6。
很可能另一个程序是 32 位的,并且正在寻找 /lib/libm.so.6,而您没有安装 32 位运行时库。
您可以使用yum install glibc.i686 或类似的方式安装它们。