交叉编译工具链——现成安装包&自己制作

arm-linux-gcc,几乎是我们在嵌入式开发中使用最多的工具了。有时候,我们需要升级这个工具以适应开发需要。

本文将介绍:1. 使用现成的安装包来安装这个工具; 2. 自己制作这个工具。

一、使用现成的安装包(以安装arm-linu-gcc-4.3.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”这条命令来使其立即生效,否则会在重启之后才能变成新的环

变量。


二、自己制作(以制作arm-linux-gcc-3.4.5为例)

工具: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目录下创建了我们的交叉编译工具。之后,修改环境变量以及验证,可以参照

参照前文的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值