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

本文介绍了解决在ARM板上运行通过交叉编译的C程序时出现notfound错误的方法。通过调整解释器ld-linux-armhf.so.3使其指向正确的动态链接器,最终使程序能够正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Ubuntu编写好一个C应用程序后,通过交叉编译后搞到ARM板子上运行,但是一运行发现系统提示not found!


但是查看程序属性,是可执行的啊,为嘛会报not found


于是进入主机Ubuntu利用file命令查看一下文件信息如下:


然后在查看一下其他已经可以在ARM上运行的程序的文件信息,看看有什么区别,如下:


可以看出两者的interpreter(解释器)不同。于是开始度娘/lib/ld-linux.so.3和/lib/ld-linux-armhf.so.3有什么关系,找了一大圈也没有这方面的信息···,于是想到他们既然在/lib目录下,不妨进去看一看啥情况。如下:


可以看到ld-linux.so.3是指向ld-2.8.so的,于是灵机一动,是不是把ld-linux-armhf.so.3也链接到ld-2.8.so是不是就可以用了!如下:


然后再次运行,这次果然就不提示:not found了,而是成功运行




root@elf2-desktop:/mnt# ldd test linux-vdso.so.1 (0x0000007fb59e5000) libatomic.so.1 => /lib/aarch64-linux-gnu/libatomic.so.1 (0x0000007fb5970000) libQt5Widgets.so.5 => /lib/aarch64-linux-gnu/libQt5Widgets.so.5 (0x0000007fb52b0000) libQt5Gui.so.5 => /lib/aarch64-linux-gnu/libQt5Gui.so.5 (0x0000007fb4c40000) libQt5Core.so.5 => /lib/aarch64-linux-gnu/libQt5Core.so.5 (0x0000007fb46f0000) libmali-hook.so.1 => not found libmali.so.1 => not found libdrm.so.2 => /lib/aarch64-linux-gnu/libdrm.so.2 (0x0000007fb46c0000) libwayland-client.so.0 => /lib/aarch64-linux-gnu/libwayland-client.so.0 (0x0000007fb46a0000) libwayland-server.so.0 => /lib/aarch64-linux-gnu/libwayland-server.so.0 (0x0000007fb4670000) libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000007fb4440000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007fb43a0000) libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000007fb4370000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007fb41c0000) /lib/ld-linux-aarch64.so.1 (0x0000007fb59ad000) libGL.so.1 => /lib/aarch64-linux-gnu/libGL.so.1 (0x0000007fb40c0000) libpng16.so.16 => /lib/aarch64-linux-gnu/libpng16.so.16 (0x0000007fb4070000) libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000007fb4040000) libharfbuzz.so.0 => /lib/aarch64-linux-gnu/libharfbuzz.so.0 (0x0000007fb3f60000) libmd4c.so.0 => /lib/aarch64-linux-gnu/libmd4c.so.0 (0x0000007fb3f40000) libdouble-conversion.so.3 => /lib/aarch64-linux-gnu/libdouble-conversion.so.3 (0x0000007fb3f10000) libicui18n.so.70 => /lib/aarch64-linux-gnu/libicui18n.so.70 (0x0000007fb3be0000) libicuuc.so.70 => /lib/aarch64-linux-gnu/libicuuc.so.70 (0x0000007fb39d0000) libpcre2-16.so.0 => /lib/aarch64-linux-gnu/libpcre2-16.so.0 (0x0000007fb3940000) libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000007fb3870000) libglib-2.0.so.0 => /lib/aarch64-linux-gnu/libglib-2.0.so.0 (0x0000007fb3720000) libffi.so.8 => /lib/aarch64-linux-gnu/libffi.so.8 (0x0000007fb3700000) libGLdispatch.so.0 => /lib/aarch64-linux-gnu/libGLdispatch.so.0 (0x0000007fb3570000) libGLX.so.0 => /lib/aarch64-linux-gnu/libGLX.so.0 (0x0000007fb3520000) libfreetype.so.6 => /lib/aarch64-linux-gnu/libfreetype.so.6 (0x0000007fb3450000) libgraphite2.so.3 => /lib/aarch64-linux-gnu/libgraphite2.so.3 (0x0000007fb3420000) libicudata.so.70 => /lib/aarch64-linux-gnu/libicudata.so.70 (0x0000007fb17f0000) libpcre.so.3 => /lib/aarch64-linux-gnu/libpcre.so.3 (0x0000007fb1770000) libX11.so.6 => /lib/aarch64-linux-gnu/libX11.so.6 (0x0000007fb1620000) libbrotlidec.so.1 => /lib/aarch64-linux-gnu/libbrotlidec.so.1 (0x0000007fb1600000) libxcb.so.1 => /lib/aarch64-linux-gnu/libxcb.so.1 (0x0000007fb15c0000) libbrotlicommon.so.1 => /lib/aarch64-linux-gnu/libbrotlicommon.so.1 (0x0000007fb1580000) libXau.so.6 => /lib/aarch64-linux-gnu/libXau.so.6 (0x0000007fb1560000) libXdmcp.so.6 => /lib/aarch64-linux-gnu/libXdmcp.so.6 (0x0000007fb1540000) libbsd.so.0 => /lib/aarch64-linux-gnu/libbsd.so.0 (0x0000007fb1510000) libmd.so.0 => /lib/aarch64-linux-gnu/libmd.so.0 (0x0000007fb14f0000) 我交叉编译了移植了QT5.12.6的程序并复制到了RK3588,但运行提示缺库,我ldd分析一下,出现这个,如何解决,RK3588无法上网
最新发布
03-18
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值