我在 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 的程序运行良好。 任何人都可以帮助解决这个问题吗? 谢谢
最佳答案
在编程中,细节很重要。
Lets say, The program which I am trying to run is ABC and install
这不是细节,这是一个假设。如果您想要有用答案,您应该提供实际您被要求提供的详细信息。特别是,编辑您的问题(而不是评论不同的无用答案),然后执行以下操作:“显示您实际运行的 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
或类似的命令来安装它们。
关于centos6 - libm.so.6 : cannot open shared object file: No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39904192/