libm.so.6:no such file or directory

1 篇文章 0 订阅

最近几天一直在弄qemu方针integratorcp开发板,遇到了很多问题,其中一个就是这个。

出现这种错误,一般肯定是首先检查库是否存在,是否在文件搜索路径中。

我出现这个错误的情况可能有点不一样,是在系统启动过程中提示的,由于该错误,系统未启动成功,init进程被杀死,但内核已经启动完成。

查看/lib目录,发现libm.so.6文件存在,是个链接文件,指向libm-2.17.so然后就一直纳闷儿,那是什么原因导致init进程无法启动,提示找不到libm库呢?

负责查找库的程序是ld-linux.so.3,问题就出在该文件上。由于在init进程启动前,需要加载相应的动态库,动态库的加载和初始化任务都是由ld-linux.so.3来完成,而此时由于init进程还未启动,所以添加的环境变量全部无效,只有默认环境变量有效,即正常情况下默认库搜索路径应该为   /lib:/usr/lib。 但实际上,正是由于默认库搜索路径有误,所以才导致lib目录下明明存在libm.so.6文件,ld-linux.so任然提示“No such file or directory ”。

出现该问题的原因:ld-linux.so.3文件有问题,默认库搜索路径应该是上面提到的两个目录。

解决办法:重新编译glibc。找到elf/Makefile文件,定位到"gen_trusted_dirs.awk"上一行,修改为"echo '/lib:/usr/lib'"

问题追踪:ld-linux.so.3->_dl_map_object(elf/dl-load.c)->SYSTEM_DIRS(elf/trusted_dirs.h)->elf/Makefile


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值