广东快3>WIKI库>学习嵌入式>嵌入式交叉编译器安装

嵌入式交叉编译器安装



交叉编译器的安装


那我先说一下简单方法怎么用,简单路径无外乎就是把“#arm-linux-gcc -o build 1.c”前面的目录告诉我们的环境变量shear中的path。


在我们linux系统中有一个非常重要的环境变量:


installing1.png


广东快3如图,这个环境变量叫做path,我们echo看一下它,回车后就是我们目前系统中的path。有很多种方法比如说我们可以在path中增加刚才的路径,因为它每一个路径之间都通过“;”来分隔的,然后我在把前面的目录加进去就可以了,这是一种方法。第二种方法就是在vi去编辑etc目录下的environment这样一个文件,因为上面这个方法我们说它只在这个shear中起作用,但是关机或者把这个shear关了就不起作用了,它只是一个暂时性的。如果想每次系统启动都把这个环境变量加到你的系统中,那就应该在第二种方法下在加一个冒号,然后把刚才的目录添加进去。


同一“vi /etc/environment”这个文件我们要注意用sudo去把它做一个超级管理员的切换。


广东快3那么这个简单方法的主要目的就是添加PATH环境变量。


在绝对路径中这个在理论上说这几个步骤完成后,交叉编译器就已经完了。也就是说这个交叉编译器的安装是最简单的。但是这个地方我们现在遇到一个新的问题如下图:


installing2.png


广东快3如图,这个地方会出现一个新的现象,我还是用这个绝对路径来访问,然后我们还记得之前在讲gcc中说过,gcc里有一个非常典型的选项叫做“-v”通过“-v”我们可以看到整个gcc的版本信息,然后这样也相当于知道整个gcc的工作细节,然后点击回车键,这个情况下,因为我现在这个机器已经装好了所以没有问题,我们已经看到gcc的版本信息,那么有些同学很有可能在你们用64位机器安装的时候这个地方会显示一个叫做没有找到文件或目录,其原因在我们论坛博客中也有,在这儿我们也提一下。其他它给我们提供的交叉编译器,它实际上是在32bit操作系统下制作的,也就是说这个编译器是制作出来的,那么它做出来的时候是在32bit中做的,那么我们还有一个道理就是这个交叉编译器跟x86还是有关系,因为我们必须要使用x86中提供的一些库支持我们才能运行起来这个交叉编译器只是它最终的目标是arm,它运行还是需要x86支持,所以这个时候它就涉及到这家编译器的32bit lib也就是它库的支持。但是现在如果说你们用的是64bit的操作系统,那这个情况下它默认其实是没有32bit lib的,所以在这个情况下一般是没有办法去安装,安装完是不能运行起来的,所以我们需要在64bit中做一个update add的升级或者是添加一个针对32位库的安装。


广东快3现在我来提结果安装方法,下面你们可以去文章或博客中去寻找,如果说你安装的是Ubuntu12.04之前的版本,就用“sudo apt-get install ia32-libs”这个命令添加进去就可以,那这个命令其实就是告诉你是安装32位库的文件,它会把32位库文件全部安装好。


但是现在Ubuntu12.04后的版本就不太支持上面那个软件,这个时候我们就需要通过其他方法去把这个软件下载下来,有可能不稳定,所以说我们现在就要在新版本中使用“sudo apt-get install libc6:i386”这个命令,也就是说把这个x86 32bit这个库安装就可以,那么如果你的系统安装完后没有问题就可以。


当然在有些情况下有些同学的机器可能由于精简或者在做完系统后没有升级可能还缺少一个库。所以这个时候我们还需要把lib32z安装上去,那么它的命令同样的道理也是“sudo apt-get install lib32z1”。这些命令大家可以下去把它安装一下,安装中为什么是这些库可以去网上查找一下。



安装是否正确


以上就是我们安装交叉编译器的问题,下面我们来试一下我们这个交叉编译器是否安装正确:


installing3.png


广东快3如图,我们还是在1.c的基础上用我们之前交叉编译器来编译一下试一下情况,我还是用标准版本,输入命令后发现没有问题,然后我们换一个名字用abc,就相当于把1.c生成了一个abc,没有报错说明肯定没有问题如下图:


installing4.png


广东快3如图,首先我们还是看一下build,build之前用gcc编的是如图这样一个情况,那么下面我们在看一下abc的file,这个时候大家可以看到abc的file它的第二值也就是说我们第一个逗号后面这个值是ARM,说明abc中默认的二进制代码是支持arm的,也就是说这个时候我在执行abc点击回车后它根本就执行不了,它会直接报错,因为这个abc中的概念是arm认识的,x86是认识不了的。


所以说我们对于这样的程序你一定要想abc是在板上运行而不是在build上运行,不过这个没关系,一会儿我们可以用abc在板子上实际的运行看看在板子上我们写一个程序,其实也很简单原理还是一样,在我们的PC上把它开发好过后用交叉编译器把它编译成对应的原文件就可以了。



演示


以上就是我们在安装交叉编译器的问题,最后我就稍微演示一下简单方法就是“sudo apt-get install lib32z1”


installing5.png


如图,在这个情况下我们敲arm-linux是没有效果敲不出来的,因为我们的环境变量没有。所以还有一个办法就是刚才我们在调用前面这个命令的时候还有目录,我们把这个目录复制过来然后在我们的vi etc/environment(前要加sudo)中去把它编辑过来,这个编辑我们习惯是放在文件最后然后冒号,记住一定是冒号因为目录与目录之间的分隔符相当于是冒号分隔符,然后点击粘贴,这个时候我们在把它保存退出。


广东快3这个时候在敲arm-linux还是没有效果,因为你现在只是编辑一个文件,系统仍然没有更新这个文件里的内容,所以我们要更新一下输入source,所以这个步骤是先把vi去编辑 etc/environment这个目录,然后这个完了之后还有source一下如下图:


installing6.png


广东快3如图,用source这个命令相当于告诉linux系统重新把这个文件的内容更新了一下,更新完后我们在敲arm-linux的时候我敲tab大家就可以看到所有的命令就过滤出来了,所以说我们“sudo vi etc/environment”这个命令就需要source它。


以上就是第一种简单方法,第二种绝对路径的方法。也就是我们交叉编译工具器的一个基本概念。



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

分享到:

目录