安装交叉编译工具链
Posted 四季帆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装交叉编译工具链相关的知识,希望对你有一定的参考价值。
1. 前言
交叉编译工具链有两种获取方式,一种是自己通过工具自制专用的交叉编译工具链,第二种是SOC芯片厂商提供的软件包中的交叉编译工具链。
在日常的学习和工作中,我们一般都会采用第二种方式,因为SOC厂商提供的交叉编译工具链是配置好的,可以直接使用的,自己制作的交叉编译工具链极可能无法使用,耗时耗力不划算,本章主要介绍第二种方式。
当然了,作为一个技术人,自制交叉编译工具链的诱惑还是挺大的,我也了解了一些,目前还没准备好,暂时不上传博客,但是可以预留个位置《交叉编译工具链的制作》。
2. 安装
2.1 将交叉编译工具链压缩包复制到开发机的某个目录下
cp arm-linux.tar.bz2 /home/sijifan/cross_compile/ -f
2.2 解压(解压成功即安装成功)
cd /home/sijifan/cross_compile //先切换到压缩包所在路径
tar -vxf arm-linux.tar.bz2 //解压缩
安装成功后的工具都在当前路径的bin/ 目录下(即 /home/sijifan/cross_compile/bin ),切换到该目录,然后创建软连接。
2.3 建立软连接
因为工具链原本的名字很长,所以我们可以通过建立软连接的方式,改一个短一点的名字,因为链接命令是一样的,可以写成一个 shell 脚本一次执行,如下
ln arm-none-linux-gnueabi-addr2line -s arm-linux-addr2line
ln arm-none-linux-gnueabi-ar -s arm-linux-ar
ln arm-none-linux-gnueabi-as -s arm-linux-as
ln arm-none-linux-gnueabi-c++ -s arm-linux-c++
ln arm-none-linux-gnueabi-c++filt -s arm-linux-c++filt
ln arm-none-linux-gnueabi-cpp -s arm-linux-cpp
ln arm-none-linux-gnueabi-g++ -s arm-linux-g++
ln arm-none-linux-gnueabi-gcc -s arm-linux-gcc
ln arm-none-linux-gnueabi-gcc-4.4.1 -s arm-linux-gcc-4.4.1
ln arm-none-linux-gnueabi-gcov -s arm-linux-gcov
ln arm-none-linux-gnueabi-gdb -s arm-linux-gdb
ln arm-none-linux-gnueabi-gdbtui -s arm-linux-gdbtui
ln arm-none-linux-gnueabi-gprof -s arm-linux-gprof
ln arm-none-linux-gnueabi-ld -s arm-linux-ld
ln arm-none-linux-gnueabi-nm -s arm-linux-nm
ln arm-none-linux-gnueabi-objcopy -s arm-linux-objcopy
ln arm-none-linux-gnueabi-objdump -s arm-linux-objdump
ln arm-none-linux-gnueabi-ranlib -s arm-linux-ranlib
ln arm-none-linux-gnueabi-readelf -s arm-linux-readelf
ln arm-none-linux-gnueabi-size -s arm-linux-size
ln arm-none-linux-gnueabi-sprite -s arm-linux-sprite
ln arm-none-linux-gnueabi-strings -s arm-linux-strings
ln arm-none-linux-gnueabi-strip -s arm-linux-strip
2.4 验证
在/home/sijifan/cross_compile/bin 路径下执行如下命令
arm-linux-gcc -v
如果能够看到gcc 编译器的版本号信息,则表明安装和软连接都成功了,但是此时只能在工具所在的目录使用这些工具,在其他目录下是无法使用这些交叉编译工具的,这明显是不可以的,因为我们不可能将所有的项目代码都放到/home/sijifan/cross_compile/bin 路径下,所以我们需要将这个路径导出到环境变量。
2.5 导出环境变量
方法1:export PATH=$PATH:/要添加的路径。但是这种方式只能在当前窗口有效,重开一个终端窗口就无效了
export PATH=$PATH:/home/sijifan/cross_compile/bin
方法2:打开/etc/profile,在最后一行写入“export PATH=$PATH:/要添加的路径”,保存之后可以重启系统或者source /etc/profile来生效。这种方式可以在任何终端窗口中使用,注意:如果不是当前用户依旧是不可以的。
vi /etc/profile,在最后一行写入“export PATH=$PATH:/home/sijifan/cross_compile/bin”
wq
重启系统或者source /etc/profile
以上是关于安装交叉编译工具链的主要内容,如果未能解决你的问题,请参考以下文章