arm-linux-gcc,几乎是我们在嵌入式开发中使用最多的工具了。有时候,我们需要升级这个工具以适应开发需要。
本文将介绍:1. 使用现成的安装包来安装这个工具; 2. 自己制作这个工具。
操作步骤:
1. 下载安装包 arm-linux-gcc-4.3.2.tgz
可在网络上寻找安装包,通常情况下,嵌入式开发板的厂商都会提供交叉编译工具的下载。在此我使用的是Frinedly Elec提供的下载:http://www.arm9.net/download.asp
2. 拷贝安装包到Linux主机的任意目录
3. su root 登录到超级用户,后面的操作需要相应的权限
4. 解压安装包到指定的目录:
tar xvzf arm-linux-gcc-4.3.2.tgz -C /
“-C /”指定改变路径到根目录
执行这个命令后,我们的工具会被安装到 /usr/local/arm/4.3.2/bin/ 这个目录下
5. 修改环境变量,使命令"arm-linux-gcc"可用:
vi /etc/environment
将
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
改为
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"
6. 验证:
(1)echo $PATH 查看环境变量是否已修改成功。
(2)arm-linux-gcc -v 查看版本是正确。若有“gcc version 4.3.2” 这个信息,说明已安装成功。
备注:有些版本的Linux可能需要使用“source /etc/environment”这条命令来使其立即生效,否则会在重启之后才能变成新的环
境变量。
工具:crosstool-0.43
原材料:(1)gcc源码:gcc-3.4.5.tar.bz2; (2)glibc库:glibc-2.3.6.tar.bz2
关于crosstool,可参考其官网:http://kegel.com/crosstool/
操作步骤:
1. 指定一个目录来存放相关的文件。
我在/work/tools/ 目录下创建了“create_crosstool”来存放下载好的crosstool-o.43.tar.gz以及补丁文件
glibc-2.3.6-version-info.h_err.patch(用来修正glibc-2.3.6/csu/Makefile中的一个小错误)。然后在
/work/tools/create_crosstool目录下创建“src_gcc_glibc”存放下载好的gcc-3.4.5.tar.bz2 和glibc-2.3.6.tar.bz2。
2. 解压。
tar xzf crosstool-0.43.tar.gz
3. 复制补丁文件。
cp glibc-2.3.6-version-info.h_err.patchcrosstool-0.43/patches/glibc-2.3.6/
4. 做一些修改。
进入到crosstool工具的目录,对相关的脚本做一些修改,目的是指定“原材料”保存的位置、生成的“结果”保存的位置,以及
目标工具的样式(我们希望我们的工具,最终是“arm-linux-gcc”这样的常用的名字)
cdcrosstool-0.43
(1)修改demo-arm-softfloat.sh,其中定义的TARBALLS_DIR,应指定为我们保存gcc和glibc的目录,RESULT_TOP为我们希望
存放工具的顶层目录:
TARBALLS_DIR = /work/tool/create_crosstools/src_gcc_glibc
RESULT_TOP = /work/tools
(2)修改arm-softfloat.dat的TAGET(原为arm-softfloat-linux-gnu),目的是使用“arm-linux”这个“工具名”
TARGET = arm-linux
(3)修改all.sh
原来的PREFIX为(对应于/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux)
PREFIX = $(PREFIX-$RESULT_TOP/$TOOLCOMBO/$TAGET)
现在改为(对应于/work/tools/gcc-3.4.5-glibc-2.3.6)
PREFIX = $(PREFIX-$RESULT_TOP/$TOOLCOMBO)
5. 修改完成后,就可以执行demo-arm-softfloat.sh脚本来创建工具了
./demo-arm-softfloat,sh
运行的结果就是在/work/tools/gcc-3.4.5-glibc-2.3.6目录下创建了我们的交叉编译工具。之后,修改环境变量以及验证,可以参照
参照前文的方法。