这几天一直在练习驱动,搭建一个简单的交叉编译环境,交叉编译工具链和开发板的源码都导进去linux的目录中,并且解压,但是执行一个简单的交叉编译命令总会出现一个奇怪的错误提示:

as:unrecongnized option 'mcpu=XXX';

百思不得其解,后来经过一个实验室的师兄的提示,终于明白了。这里有一个背景需要交代一下:

我是在windows下面的unbuntu虚拟机中进行的驱动开发练习。

首先,我建立了一个共享文件夹,将交叉编译链的压缩文件拷贝进去,这里我的压缩文件的名字为XXX.tar.gz

然后,我在解压的时候用了下面的命令行:

cp XXX.tar.gz /home/a270(我建立的目录)

然后我用一个简单的hello world程序测试交叉编译链是否起作用,就出现了如文章开头所示的错误提示。

可是后来我换了一种方法,就是先将压缩文件考到我建立的目中:

cp XXX.tar.gz /home/a270

之后解压

tar -zxvf XXX.tar.gz 

再试之后,一切顺利。

my God!

原来我开始用的方法,是在windows 下进行的解压,之后,再拷贝进去我建立的目录中,所以丢失了一种连接文件(可以自己查)

所以会出现这种错误;如果是先将压缩包拷贝进去,则不会有软连接文件的丢失状况发生。

看官不信,可以自己亲手试一下,在共享文件夹中,解压一个压缩包然后拷贝到其他目录中,然后把这个压缩包拷贝到一个目录中,用ls命令看一下文件数,对比一下。

这里有一篇文章可以参考一下:

http://blog.chinaunix.net/uid-29100821-id-3990728.html


后记:

linux的驱动不太好学,需要在反复的实践中慢慢积累经验,也很考验一个人的耐心程度,但是,事情成功之后,随之而来的成就感也是颇高的。