赞
踩
#include<stdio.h>
int main()
{
printf("hello world\n");
}
bash: ./test.out: /lib/ld64.so.1: bad ELF interpreter: 没有那个文件或目录
发现是需要/lib/ld64.so.1这个库的,而上面查看的out的对应库为/lib64/ld-linux-x86-64.so.2,这其实就是两个文件要加载的解释器,两个解释器是同一个库文件,但不知为何手动链接生成的out1并非直接访问该库,而是想要使用/lib/ld64.so.1软链接。
gcc链接
gcc hello.o -o hello
查找到的解决方案如下三篇文章
1、关于在64位Linux系统下运行32位程序时报:/lib/ld-linux.so.2:bad ELF interpreter:没有那个文件或目录。。。的问题解决
2、bad ELF interpreter: No such file or directory
3、关于ldd中存在的c ++:ld64.so,在运行时丢失
4、解决linux安装软件:/lib/ld-linux.so.2: bad ELF interpreter问题
尝试安装命令如下,仍然没能把问题解决
yum install glibc.i686
yum install libstdc++.so.6
yum install ld-linux.so.2
所以,继续寻找其他解决方案。
解决方法:
/lib64/ld-linux-x86-64.so.2这个文件建立一个软链接/lib/ld64.so.1
sudo ln -s /lib64/ld-linux-x86-64.so.2 /lib/ld64.so.1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。