libm.so.6:无法打开共享对象文件:没有这样的文件或目录

时间:2016-10-06 19:29:11

标签: centos6 glibc shared ldd

我在Centos 6.8中安装了一个程序,在运行程序时,我收到错误 “加载共享库时出错:libm.so.6:无法打开共享对象文件:没有这样的文件或目录” 当我使用ldd命令检查链接库到程序时,我可以看到正确的64位libm.so.6 “libm.so.6 => /lib64/libm.so.6(0x0000003a19000000)” 这意味着,库已安装并已添加到环境变量LD_LIBRARY_PATH中 另一个使用libm.so.6的程序运行正常。 任何人都可以帮助解决这个问题吗? 谢谢

1 个答案:

答案 0 :(得分: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或其他类似的方式安装它们。