zoukankan      html  css  js  c++  java
  • 2019年7月18日星期四(交叉工具链)

    一、交叉工具链?

    1、什么是交叉工具链?

    我们已经学习过的编译器是gcc编译器,gcc可以将高级语言转换目标程序。

    gcc编译器特点:在Ubuntu编译,在Ubuntu运行。  -> 在同一个平台上编译运行,这个gcc编译器又称之为本地编译。

    这个gcc编译器是Ubuntu中自带,gcc所的路径:/usr/bin/gcc。

    其实交叉工具链就是一个编译器,但是交叉工具链在Ubuntu中是没有的,所以想使用交叉工具链,就必须要自己移植。

    交叉工具链面向平台不是Ubuntu,而是ARM平台。交叉工具链特点:在Ubuntu中编译,在ARM平台运行。

    结论:gcc编译出来的程序只能在Ubuntu中运行,而是交叉工具链编译出来的程序只能在ARM平台上运行。

    2、什么是交叉编译?

    本地编译就是在主机A上编译,在主机A上运行。

    交叉编译就是在主机A上编译,在主机B上运行。

    二、如何移植交叉工具链到ARM平台?

    工具链:arm-2009q3.tar.bz2

    1. 先将arm-2009q3.tar.bz2放置到共享目录下

    2. 为交叉工具链创建一个新的目录,并给权限

       sudo mkdir /usr/arm

       sudo chmod 777 /usr/arm

    3. linux下将arm-2009q3.tar.bz2直接解压到安装路径下即可。

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

    4. 交叉编译器是哪个?

    /usr/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc

    . 使用交叉工具链和本地gcc编译器编译的区别?

    1. 本地编译

    gcc test.c -o test   -> 生成一个test的文件。

    file test       -> 查看test这个文件的属性。

    test: ELF   -> 代表该文件是可以执行。

          32-bit  -> 32位

          LSB executable  -> 代表当前该文件可以执行的。

          Intel 80386  -> (x86平台),说明该文件只能在x86平台运行。

    2. 交叉编译

    /usr/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc test.c -o test   -> 生成一个test的文件。

    file test       -> 查看test这个文件的属性。

     

    test: ELF   -> 代表该文件是可以执行。

          32-bit  -> 32位

          LSB executable  -> 代表当前该文件可以执行的。

          ARM   -> (ARM平台),说明该文件只能在ARM平台运行。

    四、为工具链生成一个新的链接文件。

    gec@ubuntu:/usr/arm/arm-2009q3/bin$ sudo ln -s arm-none-linux-gnueabi-gcc arm-linux-gcc

    结果:

    lrwxrwxrwx 1 root root      26 Jul 18 02:12 arm-linux-gcc -> arm-none-linux-gnueabi-gcc

    -rwxr-xr-x 2 gec  gec   207948 Oct 16  2009 arm-none-linux-gnueabi-gcc

       练习1:安装交叉工具链

       练习2:为工具链取新的名字"arm-linux-gcc"

       练习3:在任何的路径下都可以使用"arm-linux-gcc"

       练习4:自己使用"arm-linux-gcc"编译一个程序,看看不是ARM架构!

     

  • 相关阅读:
    AES加密解密
    水电缴费管理系统 需求分析与设计
    ORACLE SQL语句练习
    GUID全局唯一标识符(转)
    java 基础--多线程基础练习
    java基础List集合练习
    I/O输入输出流的练习
    java基础--集合练习
    java基础异常捕获处理
    java基础 接口练习
  • 原文地址:https://www.cnblogs.com/zjlbk/p/11209448.html
Copyright © 2011-2022 走看看