安装交叉编译工具arm-linux-gcc-4.3.

来源:互联网 发布:浙江计价软件 编辑:程序博客网 时间:2024/05/17 07:42

STEP 1: 下载arm-linux-gcc-4.3.2.tgz. 把arm-linux-gcc-4.3.2.tgz随便放在一个目录,我放在了/home/zw/program

STEP 2: 进入到/home/zw/program,解压arm-linux-gcc-4.3.2.tgz. 这个包里面有个解压的默认路径,把解压文件放在了./usr/local/arm/4.3.2.而我现在把文件放在了/home/zw/program里面,那么解压的位置应该是,/home/zw/program/usr/local/arm/4.3.2.为了方便,我们解压的时候把./改成根目录。可以man tar 看一下-C选项的意思(改变路径)。解压完毕可以到/usr/local/arm/里面看看是否ok。

cd  /home/zw/program

tar xvzf arm-linux-gcc-4.3.2.tgz  -C   /

STEP 3: 经过步骤2,arm-linux-gcc已经安装到系统里面了,可以使用了,但是,在具体使用的时候,非常不方便,必须要加上/usr/local/arm/4.3.2/bin/arm-linux-gcc。还好Linux里面有种叫环境变量的东西。可以让我们执行程序时,只输入arm-linux-gcc时,系统就自动到/usr/local/arm/4.3.2/bin/里面去寻找这个命令执行。修改环境变量如下:vi /root/.bashrc(每次特权用户登陆时调用的这个文件)

在这个文件的最后一行加入:

export PATH=$PATH:/usr/local/arm/4.3.2/bin

STEP 4: 重启或注销,或者source /root/.bashrc  查看是否就ok了。输入命令:

arm-linux-gcc -v

或者 echo $PATH

会显示arm-linux-gcc 的版本。

注意:这里的源代码和工具都是通过解压方式安装的。不用make。

 

 

三.在linux里设置环境变量的方法

 

一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来设置环境变量:

 

1、直接用export命令:

#export PATH=$PATH:/opt/au1200_rm/build_tools/bin

查看是否已经设好,可用命令export查看:

[root@localhost bin]# export

declare -x BASH_ENV="/root/.bashrc"

declare -x G_BROKEN_FILENAMES="1"

declare -x HISTSIZE="1000"

declare -x HOME="/root"

declare -x HOSTNAME="localhost.localdomain"

declare -x INPUTRC="/etc/inputrc"

declare -x LANG="zh_CN.GB18030"

declare -x LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"

declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"

declare -x LOGNAME="root"

declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"

declare -x MAIL="/var/spool/mail/root"

declare -x OLDPWD="/opt/au1200_rm/build_tools"

declare -x PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/opt/au1200_rm/build_tools/bin"

declare -x PWD="/opt/au1200_rm/build_tools/bin"

declare -x SHELL="/bin/bash"

declare -x SHLVL="1"

declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"

declare -x SSH_AUTH_SOCK="/tmp/ssh-XX3LKWhz/agent.4242"

declare -x SSH_CLIENT="10.3.37.152 2236 22"

declare -x SSH_CONNECTION="10.3.37.152 2236 10.3.37.186 22"

declare -x SSH_TTY="/dev/pts/2"

declare -x TERM="linux"

declare -x USER="root"

declare -x USERNAME="root"

可以看到,环境变量已经设好,PATH里面已经有了我要加的编译器的路径。但是这仅仅局限于当先终端下,关闭这个终端或者新开一个终端就不OK了。

2、修改profile文件: 

#vi /etc/profile 

在里面加入:

export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

3. 修改.bashrc文件:

# vi /root/.bashrc

在里面加入:

export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:

# echo $PATH

看看输出里面是不是已经有了/my_new_path这个路径了

在Debian/Ubuntu下安装arm-linux-gcc-4.3.2 with EABI,其实就是建立交叉编译环境的过程,现在4.3.2是最新的版本,和之前版本的安装方法是一样的,并且在每个linux发行版都类似,我使用的是Debian。为什么要使用with EABI的交叉工具链,在友善之臂的网站有说明:交叉编译器在编译的时候,对于浮点运行会预设硬浮点运算FPA(Float Point Architecture),而没有FPA的CPU,比如SAMSUNG S3C2410/S3C2440,会使用FPE(Float Point Emulation 即软浮点),这样在速度上就会遇到极大的限制,使用EABI(Embedded Application Binary Interface)则可以对此改善处理,ARM EABI有许多革新之处,其中最突出的改进就是Float Point Performance,它使用Vector Float Point(矢量浮点),因此可以极大提高涉及到浮点运算的程序。但是要注意的是,在编译内核的时候也必须勾选上”Use the ARM EABI to compile the kernel“的选项。
下面来总结一下安装和配置过程(使用root权限):

1.安装开发环境,直接一个命令搞定:apt-get install build-essential,如果已经安装好,可以跳过这一步;
2.进入下载好的arm-linux-gcc-4.3.2 with EABI所在的目录,执行解压缩:tar xvzf arm-linux-gcc-4.3.2.tgz –C /
注意:C 后面有个空格,并且 C 是大写的,也就是改变目录到根目录/进行解压缩操作。 
3.解压缩完成后,把编译器路径加入系统环境变量;
执行命令:gedit /root/.bashrc,
打开文件后,在最后加上一行代码:export PATH=$PATH:/usr/local/arm/4.3.2/bin
4.使变量立即生效,在终端执行:source /root/.bashrc ,或者注销后重登录;
5.输入命令:arm-linux-gcc –v 可以测试一下,如果输出下面的相关信息,说明在Debian/Ubuntu下建立交叉编译环境成功。

转自:http://blog.renren.com/share/230051462/2717926539