ARM 执行应用程序提示 -sh : no such file or direction

遇到这个问题,是因为我自己交叉编译了QT的库,然后再根据这个库,交叉编译了QT的应用程序,将应用程序拷贝到板子上时,提示了这个问题。我使用之前的环境编译的程序就不会出现这个问题。

首先根据网友的提示,我确定了我的文件是有可执行权限的,我的可执行文件和我的系统也是匹配的,都是32位的。同时我使用相同的编译器进行编译,其他程序是可以执行的。

后面根据以为大佬的提示,使用readelf查看信息,最终解决了。如下:

readelf -l hello | grep interpreter       //-l 查看依赖哪些库,  hello 是我的程序

显示[Requesting program interpreter: /lib/ld-linux.so.3]

说明我的程序依赖 /lib/ld-linux.so.3 这个库。

我去 /lib这个目录下,发现没有找到ld-linux.so.3

后面查看信息知道,ld-linux.so.3 是个软链接。链接到我的 ld-linux-armhf.so.3这个库, ld-linux-armhf.so.3 这个库又链接到ld-2.21.so 这个库。执行命令 ln -s ld-linux-armhf.so.3  ld-linux.so.3  //建立软链接

然后再执行程序,发现程序可以正常运行了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

monkey_lqd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值