今天终于按照mini2440提供的移植手册制作好了yaffs2文件系统,系统可以登陆控制台了,很是兴奋,于是编译了hello.c想在板子上跑一跑,接着郁闷的事情发生了。
把hello用u盘拷到板子之后,执行./hello,结果报错:permission denied。
首先想到会不会是没有执行权限,于是输入命令ls-all. 结果显示hello有执行权限。
上网查了一下资料,说有可能是编译内核、文件系统的编译器版本和编译程序的编译器版本不一致所致,于是回想了一下。我内核和文件系统用的是手册中指定的编译器,唯有程序我不记得是用什么编译的了,于是重新用编译内核的编译器编译了程序。运行,仍然报错:permission denied。看着屏幕,我说了一句:“SHIT !”
继续在网上查,有人说可能是动态链接库的问题,于是我又重新编译hello.c,加上了-static参数。再次拷到板子上运行,终于在屏幕出现了hello world。
看来真的是动态链接库的问题,下一步就得弄清楚动态链接和静态链接的区别,以及动态链接库是怎么生成的了。这种基础的问题对于我这个菜鸟来说还是值得研究的。