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

2018-02-03 10:24:06来源:网络收集作者:管理员人点击

分享

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 xvzfarm-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” 这个信息,说明已安装成功。


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


参照前文的方法。


微信扫一扫

第七城市微信公众平台