/lib/ld-linux.so.3: No such file or directory

本文介绍了解决ld-linux.so.3缺失导致的程序运行错误的方法,包括检查环境变量设置、查找ld-linux.so.3位置、修正库路径、复制并创建符号链接等步骤。

参考1:https://blog.csdn.net/weixin_41865104/article/details/89400567

参考2:https://zhidao.baidu.com/question/582585325.html

参考3:https://blog.csdn.net/harry_helei/article/details/5740456

解决:1/通过find / -name "ld-linux.so.3"查找ld-linux.so.3在本地存于何处,发现存在之前环境变量设置错误:

之前设置:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib

           但该目录下无ld-linux.so.3,应修改为/usr/local/arm/gcc-4.6.4/xxx/xxx/lib(存在ld-linux.so.3的lib目录),然后再source /etc/profile;

         2/重新运行main,发现还不行,用file main查看可执行文件所用到的lib在何处;

         3/ls -l查看ld-linux.so.3链接到何处,将对应的ld-2.3.7.so复制到/lib/目录,并使用

           ln -s ld-2.3.7.so ld-linux.so.3建立ld-linux.so.3的符号链接;

        4/重新运行./main,OK,搞定

【源码免费下载链接】:https://renmaiwang.cn/s/fougv 深入探讨了在Linux系统中遇到"No such file or directory"错误背后的原因及其解决方案。本文通过详细示例代码分析了该错误的常见原因,并提供了多种可行的解决方法,具有较高的参考价值。 Linux执行文件分为静态链接和动态链接两类。静态链接可执行文件包含所有依赖库信息,而动态链接则依靠系统中的动态链接器(如"/lib/ld-linux.so.*")加载运行时所需资源。尽管该错误通常提示文件不存在,但其背后可能隐藏着更深层的问题。 在本案例中,尝试在ZC706-ARM开发板上运行由英伟达ARM开发板编译的"a.out"文件时出现"No such file or directory"错误。该文件存在于目标存储器,并且权限设置无误,但两个开发板均基于ARM架构却仍无法正常执行。这表明问题可能出在目标系统缺少特定的动态链接器。 通过分析"a.out"的ELF头信息发现,其入口地址指向了所需动态链接器的位置;然而ZC706开发板上并未匹配相应的版本号。本文提出以下几种解决方案:首先建议用户在编译时使用与目标系统一致的编译器和库以避免因库版本不兼容导致错误;其次可尝试建立软链接将默认链接器指向正确的版本(如"ln -s /lib/ld-linux.so.3 /lib/ld-linux-armhf.so.3");最后,建议在编译时添加"-static"选项生成静态链接文件,以消除对动态链接器的依赖。 通过对比能够正常运行的"b.out"和出现错误的"a.out"的ELF头信息发现:"a.out"为动态链接格式而"b.out"采用静态链接方式。这表明动态链接需要特定版本的动态链接器支持,在ZC706开发板上无法找到匹配项,而静态链接文件则完全自给自足。 理解并解决"No such fil
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值