在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了,而是成功运行。