嵌入式Linux--配置交叉编译工具链

ARM 217浏览


安装

我的交叉编译软件包为arm-2009q3.tar.bz2,首先在/usr/local目录下建立arm目录,将软件包解压到该目录下。linux中所有目录性质都是一样的,装在哪个目录下都是可以的,为了方便管理,一般软件之类的都装在/usr目录下。

mkdir /usr/local/arm
tar -jxvf arm-2009q3.tar.bz2 -C /usr/local/arm/

导出环境变量

在Linux中,为了能让Shell终端能够自动找到编译器的路径,需要添加环境变量。可以使用export命令增加环境变量。

export PATH=/usr/local/arm/arm-2009q3/bin:$PATH

export导出的环境变量只在当前终端有效,此时打开另外一个终端就没用了。解决办法就是在~/.bashrc里面添加上面这条指令(每一个终端被打开,.bashrc都会自动被执行)。有一点要注意的是 .bashrc 是针对某一个用户的,因为我一般使用的是root用户,所以我需要配置/root/.bashrc 文件,如果我切换到了普通用户,那么之前的配置是没用的,需要重新配置普通用户。

创建符号链接

为了方便使用,一般要创建符号链接,看起来也更直观。因为可执行程序非常多,一条条指令单独地去执行非常麻烦,所以使用脚本来创建。vi mk.sh后,将以下内容添加到文件中,最后source mk.sh执行就OK了。
执行的时候如果出了错误,那么应该是换行的问题。在windows中按下Enter会写入rn(但是windows读取文件时读出来的是n,很智能的去掉了r,微笑),Linux中按下Enter会写入n。
windows下面编辑的脚本粘贴到Linux系统后,要做一些额外的修改把那个多余的r删掉才行;或者干脆直接在Linux下面编辑脚本。

ln -s arm-none-linux-gnueabi-addr2line  arm-linux-addr2line
ln -s arm-none-linux-gnueabi-gprof      arm-linux-gprof
ln -s arm-none-linux-gnueabi-ar         arm-linux-ar
ln -s arm-none-linux-gnueabi-ld         arm-linux-ld
ln -s arm-none-linux-gnueabi-as         arm-linux-as
ln -s arm-none-linux-gnueabi-nm         arm-linux-nm
ln -s arm-none-linux-gnueabi-c++        arm-linux-c++
ln -s arm-none-linux-gnueabi-objcopy    arm-linux-objcopy
ln -s arm-none-linux-gnueabi-c++filt    arm-linux-c++filt
ln -s arm-none-linux-gnueabi-objdump    arm-linux-objdump
ln -s arm-none-linux-gnueabi-cpp        arm-linux-cpp
ln -s arm-none-linux-gnueabi-ranlib     arm-linux-ranlib
ln -s arm-none-linux-gnueabi-g++        arm-linux-g++
ln -s arm-none-linux-gnueabi-readelf    arm-linux-readelf
ln -s arm-none-linux-gnueabi-gcc        arm-linux-gcc
ln -s arm-none-linux-gnueabi-size       arm-linux-size
ln -s arm-none-linux-gnueabi-gcc-4.4.1  arm-linux-gcc-4.4.1
ln -s arm-none-linux-gnueabi-sprite     arm-linux-sprite
ln -s arm-none-linux-gnueabi-gcov       arm-linux-gcov
ln -s arm-none-linux-gnueabi-strings    arm-linux-strings
ln -s arm-none-linux-gnueabi-gdb        arm-linux-gdb
ln -s arm-none-linux-gnueabi-strip      arm-linux-strip
ln -s arm-none-linux-gnueabi-gdbtui     arm-linux-gdbtui

最终结果

在这里插入图片描述