手头有一个2440的开发板,飞凌的。有兴趣将lighttpd移植到2440上运行。飞凌自带了编译链但是我没有用,用的是友善上下载的一个2440编译链工具。一切的编译都很正常,把程序加载到开发版后发现提示:not found错误。
开始以为是BusyBox问题,但是其他的一些命令和程序都能正常执行,就排除了这个想法。google了一下,都是说可能缺少某些lib库动态文件,但是发现nfs系统中有这些文件,也就没在意。今天突然看到一个博客,和我的问题类似,摘录如下:
1、我现在挂上文件系统了。
编了个helloworld小程序想测试一下:
hello.c,很简单一句话:printf("hello world/n");
但是当我用armgcc编译好,放到文件系统上时,执行 ./hello,提示:
-bin/sh ./hello not found
这是什么原因?
我在内核配置里面已经选上 ELF格式支持,但是a.out 和MISC binaries没有选。现在晚上手上没板也试不了。
大侠们觉得是哪里的问题呢?
会是busybox问题么?但是我拿到3星的s3c2440下试确实没有问题的,猜测应该是内核问题?
后来想到编译的时候没有加静态选项,可能是缺少库文件。
马上加上库文件,果然好了。
拿lijay大虾的话总结:
一就是有可能/lib下面没有C库 就是没有glibc或者uclibc的动态库
二就是你板子上的C库和编译hello链接时用的C库不一样, 差别太大.
我将友善的编译链中的lib文件夹拷贝到nfs文件系统中,启动开发板---正常
看来这个地方需要自己注意,有很多还没有搞透。