使用动态库交叉编译生成可执行程序时,经常使用ldd
指令来检查可执行程序链接的动态库是否定位到。
而问题是很多嵌入式Linux本身都是不带ldd指令的,所以想办法搞一个ldd上去是很有必要的!
ldd与我们常用的ls、cd不用,ldd只是一个脚本,而ls、cd..都是可执行程序。
这就意味着我们不需要编译,只要修改部分代码就行。
步骤:
-
在宿主机(hostPC)上找到ldd脚本,我这里是在
/usr/bin
目录下,使用编辑器打开 -
一般嵌入式设备用的是
/bin/sh
而不是/bin/bash
,所以修改第一行为#! /bin/sh
-
修改RTLDLIST变量为当前目标机的动态加载器,我这里是:
RTLDLIST="/lib/ld-linux-armhf.so.3"
-
拷贝修改后的ldd文件到目标机的/bin或
/sbin
或/usr/bin
目录下
这样开机之后即可使用ldd指令了。Enjoy it!