今天在编写LED驱动的测试程序时发现应用程序无法运行,显示“-bin/sh:/XXX not found”。网上的搜索结果认为:
“在Linux操作系统上执行应用程序时,首先要把程序装载进内存中,完成该功能的是装载器。在PC平台上的Linux中发现,在lib目录下存放很多库文件,其中就有装载器对应的库文件(ld.so和ld-linux.so)、libc.so等。在我的嵌入式Linux的根文件系统的lib目录下没用库文件,解决的方法是把交叉编译器对应的lib目录下的库文件拷贝到嵌入式Linux的根文件系统的lib目录下即可,这些库文件可以使用交叉编译器的strip工具以减小其大小,从而减少其所占存储空间。”
回想起编译此程序的arm-linux-gcc与厂商提供的arm-linux-gcc版本不相符。于是使用厂商提供的arm-linux4.3.2重新编译,则可以运行。