菜鸟学习嵌入式 问题笔记之 关于-/bin/sh: 命令:not found的解决办法

时间:2021-01-16 14:51:41

  在跟着韦东山老师的视频第12课,字符设备驱动程序之LED驱动程序,编写了个firstdrvtest.c文件,在虚拟机下,用交叉工具编译器arm-linux-gcc -o first firstdrvtest,然后拷贝到之前制作好的/home/S4-ARM/lesson4/rootfs目录下,通过nfs(network file system)挂载到OK6410开发板上面,实现同步。

当我用./first 命令执行的时候,提示错误,-/bin/sh: ./first: not found,,,,,顿时无语了     在经过查找资料后,下面是我的的解决办法:

     一开始我以为是first没有运行权限,不过我给了它运行权限还是提示同样的错误。我在网上搜了下找到了原因:只所以提示“-/bin/sh: ./first: not found”,是因为我没有拷first所需的库文件。1.在虚拟机下,通过命令arm-linux-readelf -a first,然后在输出的内容中找到Program Headers:,这里就有first所需的库文件。菜鸟学习嵌入式 问题笔记之 关于-/bin/sh: 命令:not found的解决办法

如上图知道,我所需要的是/lib/ld-linux.so.3这个库文件,然后我需要到/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib下的动态库中找寻所需的库/lib/ld-linux.so.3。。。。。

在这个目录下, 用命令 #cp ld-linux.so.3 /home/S4-ARM/lesson4/rootfs/lib   

这样之后,在到开发板环境下,#cd /lib/  #ls ,会发现,/lib/目录下存放着库 ld-linux.so.3     

之后在执行命令 #./first  ,会发现,正常运行了。问题就解决了。