我在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的程序运行正常。 任何人都可以帮助解决这个问题吗? 谢谢
答案 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
或其他类似的方式安装它们。