嵌入式问题笔记1---应用程序无法正常运行/bin/sh: 命令:not found的解决办法

第一步、问题描述:

其实a.out是一个输出hellow !!的基础函数

1、在主机通过交叉编译器 编译的应用程序,拷贝到开发板上,无法运行,提示

# ./a.out
-sh: ./a.out: not found

2、解决到not found 问题后

# ./a.out
Segmentation fault

第二步、解决问题

第一个问题,通过查资料得到的是确实运行的库导致的,可参考该博客/bin/sh: 命令:not found的解决办法

通过主机中的arm-linux-readelf -a a.out 查看所依赖的库文件,我这所需要的是/lib/ld-linux.so.3,确实开发板中是没有。

拷贝ld-linux.so.3库到开发板后,就遇到第二问题,一直是报错。

第二个问题,百度得到的资料 都是指向交叉编译器不一致导致,尝试了主机里面多个交叉编译器(别的cpu的交叉编译器),问题依旧存在,隐约觉得还是库文件的问题比较大,直到看到这边博客,给了灵感

ld-linux.so.3和/lib/ld-linux-armhf.so.3和程序not found解决方案

也做了一下软链接,最后运行成功


     0 lrwxrwxrwx    1 root     root             7 Jan  1 00:38 ld-linux.so.3 -> libc.so
     0 lrwxrwxrwx    1 1000     1000            12 Dec 12  2022 ld-musl-arm.so.1 -> /lib/libc.so
     0 lrwxrwxrwx    1 1000     1000            18 Dec 12  2022 libatomic.so -> libatomic.so.1.2.0
     0 lrwxrwxrwx    1 1000     1000            18 Dec 12  2022 libatomic.so.1 -> libatomic.so.1.2.0
    21 -rwxr-xr-x    1 1000     1000         21640 Dec 15  2022 libatomic.so.1.2.0
   606 -rwxr-xr-x    1 1000     1000        620216 Dec 15  2022 libc.so
     0 -rw-r--r--    1 1000     1000           132 Dec 12  2022 libgcc_s.so
   130 -rw-r--r--    1 1000     1000        132632 Dec 15  2022 libgcc_s.so.1
     0 drwxr-xr-x    3 1000     1000             0 Dec 15  2022 modules
     0 -rw-r--r--    1 1000     1000            95 Dec 15  2022 os-release

第三步,总结

1、buildroot中使用的是c库是musl,所以直接复制ld-linux.so.3,可能不成功(个人猜测)

2、buildroot制作的文件系统,最好用buildroot生成的交叉编译器去编译

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值