linux 执行程序时,提示not found问题分析

本文参考自:原博客链接

嵌入式开发中,有时执行程序时,明明目录下可执行文件存在,但却提示文件不存在。

root@petalinux:~# ./ccp 
-sh: ./ccp: not found
root@petalinux:~# ls
app           ccp           driver        user_scripts
bin           dma           lib

在上位机通过 readelf 查看该进程文件所以依赖的运行环境,检查相关路径是否存在对应的文件。
在这里插入图片描述
在这里插入图片描述
回到下位机,查看所需的库文件是否存在

root@petalinux:/lib# ls
ld-2.21.so               libgcc_s.so.1            libnss_files-2.21.so
ld-linux.so.3            libm-2.21.so             libnss_files.so.2
libBrokenLocale-2.21.so  libm.so.6                libpthread-2.21.so
libBrokenLocale.so.1     libnl.so                 libpthread.so.0
libanl-2.21.so           libnl.so.1               libresolv-2.21.so
libanl.so.1              libnl.so.1.1             libresolv.so.2
libc-2.21.so             libnsl-2.21.so           librt-2.21.so
libc.so.6                libnsl.so.1              librt.so.1
libcrypt-2.21.so         libnss_compat-2.21.so    libutil-2.21.so
libcrypt.so.1            libnss_compat.so.2       libutil.so.1
libdl-2.21.so            libnss_dns-2.21.so       modules
libdl.so.2               libnss_dns.so.2

看到库文件中有一个类似的ld-linux.so.3,没有ld-linux-armhf.so.3,另一个文件libc.so.6是存在的,因此尝试创建软连接,看看程序会不会正确执行。

root@petalinux:/lib# ln -s ld-linux.so.3 ld-linux-armhf.so.3
root@petalinux:/lib# ls
ld-2.21.so               libdl.so.2               libnss_dns.so.2
ld-linux-armhf.so.3      libgcc_s.so.1            libnss_files-2.21.so
ld-linux.so.3            libm-2.21.so             libnss_files.so.2
libBrokenLocale-2.21.so  libm.so.6                libpthread-2.21.so
libBrokenLocale.so.1     libnl.so                 libpthread.so.0
libanl-2.21.so           libnl.so.1               libresolv-2.21.so
libanl.so.1              libnl.so.1.1             libresolv.so.2
libc-2.21.so             libnsl-2.21.so           librt-2.21.so
libc.so.6                libnsl.so.1              librt.so.1
libcrypt-2.21.so         libnss_compat-2.21.so    libutil-2.21.so
libcrypt.so.1            libnss_compat.so.2       libutil.so.1
libdl-2.21.so            libnss_dns-2.21.so       modules

创建成功后程序成功执行:

root@petalinux:~# ./ccp 
1    
open: Bad address

我这里没有输入参数导致报错,但程序是在运行了,没有再报之前的not found错误。

另外的,有时可能的原因是库文件存在,但环境变量没有配置好。

本文参考自:原博客链接

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值