ubuntu18.04安装arm-linux-gcc过程 图文详解

ubuntu18.04安装arm-linux-gcc

由于嵌入式开发需要,最近在电脑上安装了交叉编译工具

交叉编译工具

交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。对于交叉开发的工具链来说,在文件名称上加了一个前缀,用来区别本地的工具链。例如,arm-linux-表示是对arm的交叉编译工具链,arm-linux-gcc表示是使用gcc的编译器。除了体系结构相关的编译选项以外,其使用方法与Linux主机上的gcc相同,所以Linux编程技术对于嵌入式同样适用。不过,并不是任何一个版本拿来都能用,各种软件包往往存在版本匹配问题。例如,编译内核时需要使用arm-linux-gcc-4.3.3版本的交叉编译工具链,而使用arm-linux-gcc-3.4.1的交叉编译工具链,则会导致编译失败。
gcc和arm-linux-gcc的区别就是gcc是linux下的C语言编译器,编译出来的程序在本地执行,而arm-linux-gcc用来在linux下跨平台的C语言编译器,编译出来的程序在目标机(如ARM平台)上执行,嵌入式开发应使用嵌入式交叉编译工具链。

  1. 什么是交叉编译?
    交叉编译是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。
    我们在windows上编写C51代码,并编译成可执行代码,如 xxx.hex,是在C51上面运行,不是在windows上运行;我们在ubuntu上面编写树莓派的代码,并编译成可执行代码,如 a.out,是在树莓派上运行,不是在ubuntu上运行。

  2. 为什么需要交叉编译工具?
    目的平台上资源匮乏,无法运行我们所需的编译器 。
    在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的ARM平台,其一般的静态存储空间大概是16到32MB,而CPU的主频大概在100MHz到500MHz之间。这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链需要很大的存储空间,并需要很强的CPU运算能力。为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的平台(如PC上)编译出针对其他平台的可执行程序。

arm-linux-gcc的安装

我使用的版本为arm-linux-gcc 4.3.2,安装过程大多类似,其他版本的安装可参考

  1. 获取安装包并复制到ubuntu系统的主目录
    安装包的获取可以通过网络搜索或是使用下方的网盘链接,复制的目录可以更改但是需要在后续的操作中更改目录路径。
    链接:https://pan.baidu.com/s/1YvT-HRtPiHwGmSMWb7tzeg
    提取码:zxct
    复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的分享

  2. 使用root用户(可跳过)
    在ubuntu系统中按住Ctrl + alt+ T打开命令行,输入

    sudo -i
    

    进入root模式
    root
    这里正常输入密码即可,ubuntu输入密码是不显示的,输入成功后如图所示进入root。
    在这里插入图片描述

  3. 建立文件夹与设置权限
    依次输入如下代码

    cd /usr/local/
    mkdir arm
    chmod 777 arm
    cd arm
    

    在这里插入图片描述

  4. 找到压缩包的存放位置,将下载的工具压缩包复制到新建文件arm内并解压到arm文件夹,解压完成后通过命令查看arm文件夹内部是否有该文件
    我的压缩包存放位置是~/arm-linux-gcc-4.3.2.tar.gz~/表示在主目录下,展开为 /home/用户名

    cp ~/arm-linux-gcc-4.3.2.tar.gz ./
    ls arm-linux-gcc-4.3.2.tar.gz
    tar -zxvf arm-linux-gcc-4.3.2.tar.gz 
    ls
    

    在这里插入图片描述

  5. 配置环境变量

    Ubuntu不同目录下profile与bashrc的区别
    /etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
    /etc/bash.bashrc 为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
    ~/.bash_profile 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
    ~/.bashrc 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
    ~/.bash_logout 当每次退出系统(退出bash shell)时,执行该文件。
    另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。
    ~/.bash_profile 是交互式、login 方式进入 bash 运行的。
    ~/.bashrc 是交互式 non-login 方式进入 bash 运行的。
    通常二者设置大致相同,所以通常前者会调用后者。

    gedit /etc/profile
    

    在文件最后一行加入,其中具体路径根据版本与安装路径的不同进行更改。

    export PATH=/usr/local/arm/4.3.2/bin:$PATH
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/4.3.2/lib
    
  6. 重新启动profile文件并查看环境变量是否添加成功

    source /etc/profile
    echo $PATH
    

    提示:root模式可以输入source命令,非root用户需要重启才能够生效
    在这里插入图片描述
    显示如图则说明添加成功

  7. 安装32位依赖库

    sudo apt install lib32ncurses5 lib32z1
    
  8. 输入版本信息,查看是否安装成功

    arm-linux-gcc -v
    

    显示如图说明安装成功在这里插入图片描述
    在终端上输入命令 arm- 再按两下Tab键,可以看到相关的命令
    在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值