1、简介
交叉编译:把在一种计算机环境中编译出在另外一种环境下运行的可执行程序的编译过程叫作交叉编译。
工具链:一般由编译器、链接器、解释器和调试器等组成(也就是一些gcc、g++、ld、ar、gdb等工具)。
通常在Linux PC机上编译一个c程序时往往只需要使用gcc即可,但是如果把这程序放到ARM目标板上面运行则出错,因为这个程序的运行环境(CPU架构、指令集)不一样导致无法运行,要想在ARM目标板上运行则可以选择使用交叉编译工具进行编译,当然如果条件允许也可以在ARM目标板上编译,但资源、性能一般比不上Linux PC机,所以不推荐。
以arm-linux-交叉编译为例,使用这系列工具编译出来的程序是在arm-linux环境使用的,不同厂家制作的板子由于CPU架构不同所以使用的交叉编译工具也会有所不同,比如有的使用arm-linux-gnueabihf-,不过下面的配置原理都一样,根据目标板选择对应工具即可。下面就进行arm-linux-gcc-4.3.2的安装:
2、工具链下载
参考地址:点击这里
3、解压压缩包
把下载得到的压缩包在这里解压到根目录(也可以选择其他目录):
sudo tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C /
这时里面的程序就可以使用了,但是最好还是对系统指定这些程序的路径,否则每次都需要使用绝对路径执行这些命令。在Linux中,shell命令可以通过环境变量PATH指定的路径去查找的,所以需要对PATH进行配置,有两种方法。
4、临时生效法
把刚才解压出来的工具链所在路径添加到环境变量PATH,这样shell才可以通过PATH指定的路径去找到对应的命令:
export PATH=$PATH:/usr/local/arm/4.3.2/bin
这里的/usr/local/arm/4.3.2/bin
就是我们解压得到的路径,当然也有可以可能在其他路径,相应地在这里补上就可以(路径之间以冒号":
"隔开),这种方法是临时的,只在这个终端窗口生效,打开其他窗口需要重新执行该命令。
5、“永久”生效法
方法一:
修改配置文件vim /etc/environment
,同样和临时生效的PATH一样,找到PATH把对应的路径添加进去就可以(路径之间以冒号":
"隔开),修改之后还要重启系统或者执行一下命令source /etc/profile
让它生效,这种方法对所有用户都会生效。
方法二:
修改~/.bashrc
,在末尾添加export PATH=....
即可。这种方法的原理就是每次打开一个新的命令行窗口都会先执行该用户目录下的.bashrc文件来初始化,所以在这部分添加也能实现修改环境变量的效果,这种方法只会对本用户生效。
6、测试
执行命令arm-linux-gcc -v
查看版本是否一致