交叉编译工具链arm-linux-gcc

  1. 使用arm-2009q3.tar这一款交叉编译器。三星公司开发S5PV210时使用的,错误最少。
  2. 在linux系统下的应用程序一般安装在那里呢?
    从技术角度讲,都可以。但是有些约定俗称的,比如/bin安装系统自带的用户常使用的应用程序,/sbin中放置系统自带的与系统管理相关的应用程序,/usr下安装用户的应用程序。
  3. 安装的过程还是比较简单的,把arm-2009q3.tar.bz2从共享文件夹/mnt/hgfs/ubuntu16_shared中拷到linux中,然后把arm-2009q3.tar.bz2这一压缩文件解压,值得一提的是解压命令 tar

-c 建立新的打包文件
-r 向打包文件末尾追加文件
-x 从打包文件中解出文件
-o 将文件解开到标准输出
-v 处理过程中输出相关信息
-f 对普通文件操作
-z 调用 gzip 来压缩打包文件,与-x 联用时调用 gzip 完成解压缩
-j 调用 bzip2 来压缩打包文件,与-x 联用时调用 bzip2 完成解压缩
-Z 调用 compress 来压缩打包文件,与-x 联用时调用 compress 完成解压缩
常见的压缩文件一般有两种方式,tar.gz和tar.bz2。tar.gz使用tar -zxvf xxx.tar.gz来解压,而tar.bz2使用 tar -jxvf xxx.tar.bz2 我的比较俗气的记忆方式是.bz2是用-jxvf,jb一组
最后的可执行程序路径是: /usr/local/arm/arm-2009q3/bin

  1. 在上面的安装完成之后,其实已经是可以使用交叉编译工具了的,但是每次使用的时候要加上目录,即/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc,单独直接使用arm-none-linux-gnueabi-gcc会出现找不到命令的情况,所以这里涉及了一个重要的问题:环境变量
  • 环境变量相当于操作系统的全局变量,我们要用的全局变量PATH的意义是:指定命令的搜索路径。
  • 可以用echo命令来打印出PATH的值。 echo $PATH 结果显示为/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
  • /usr/local/arm/arm-2009q3/bin加到PATH中,以后使用arm-linux-gcc命令的时候就可以直接使用不加目录了。具体方法是使用export PATH=/usr/local/arm/arm-2009q3/bin:$PATH
  • 但是在某一终端执行上述命令后,只会在上述终端有效,关掉以后就没用了。在linux的宿主目录下有一个文件叫 /root/.bashrc,每个终端在启动时都会调用该文件,所以将上面的语句写到.bashrc中就可以了!
  1. 最后就是诸如arm-none-linux-gnueabi-gcc这样的命令比较复杂,所以需要创建方便的符号链接,比如ln arm-none-linux-gnueabi-gcc -s arm-linux-gcc之后就可以直接使用arm-linux-gcc这个命令了。
  2. 注意,如果使用的是64位的ubuntu系统(我用的ubuntu16),是不兼容这个交叉编译链的,需要通过 sudo apt-get install lib32ncurses5 lib32z1 来安装32位的库支持。

至此,交叉编译工具就安装完毕啦!喜闻乐见!

你可能感兴趣的:(交叉编译工具链arm-linux-gcc)