精华内容
下载资源
问答
  • 什么是交叉编译器

    2011-06-22 15:55:00
    什么是交叉编译器? 为什么叫“交叉编译器”(cross compiler),就是因为它跨平台来编译程序!做交叉编译器要弄清楚3个概念:host, build, target: build -- 你在什么平台上编译的这个编译器host -- 这个编译器...
    • 什么是交叉编译器?

        为什么叫“交叉编译器”(cross compiler),就是因为它跨平台来编译程序!做交叉编译器要弄清楚3个概念:host, build, target:

    1.  
      • build -- 你在什么平台上编译的这个编译器
      • host -- 这个编译器将来要在什么平台上运行
      • target -- 编译器最终会生成在哪个平台上执行的可执行代码

        这里我可以给个例子 build=i386 host=sparc64 target=mips32 表示我们在x86平台上编译了一个在sparc64平台上运行的编译器,它将源码编译生成了要在mips32平台上运行的可执行程序

    展开全文
  • 什么是交叉编译器

    2020-06-06 23:58:38
    在 Linux 下进行 C 程序开发, 我们使用的 gcc 编译器进行代码的编译, 编译完, 直接在 X86 架构下的 PC 下运行的。...译器并且该编译器在 X86 架构下运行, 这个编译器我们通常称为交叉编译器。 ...

    在 Linux 下进行 C 程序开发, 我们使用的 gcc 编译器进行代码的编译, 编译完,
    直接在 X86 架构下的 PC 下运行的。 而 arm 架构的, 所以我们需要使用支持 arm 的编
    译器并且该编译器在 X86 架构下运行, 这个编译器我们通常称为交叉编译器。

    展开全文
  • 交叉编译器

    2020-12-10 14:37:37
    什么是交叉编译器 交叉编译器可以使我们在主机上编译出可以在嵌入式设备上运行的程序 下载地址 arm官方提供的下载地址在这:链接 link ubuntu直接apt-get下载 sudo apt-get install gcc-aarch64-linux-gnu#...

    什么是交叉编译器

    交叉编译器可以使我们在主机上编译出可以在嵌入式设备上运行的程序

    下载地址

    • arm官方提供的下载地址在这:链接 link

    在这里插入图片描述

    • ubuntu直接apt-get下载

      sudo apt-get install gcc-aarch64-linux-gnu#安装64位用于操作系统的交叉编译器,gcc版本是5.4,安装位置在/usr/bin  
      sudo apt-get install gcc-arm-linux-gnueabihf#安装32位用于操作系统的交叉编译器,gcc版本是5.4,安装位置在/usr/bin
      
      • 1
      • 2

    名字解释

    有好多可选,接下来一一解释这么些都是些啥,这么长的名字都分别代表了什么含义。我们只对x86_64 linux系统主机中的几个交叉编译器进行名字分析,windows的不管

    • [gcc]-[arm]-[8.3]-[2019.03]-[x86_64]-[arm]-[eabi].tar.xz
      gcc就是我们用的gcc,arm代表嵌入式平台是arm,8.3代表gcc的版本,2019.03代表该交叉编译器的发布时间,x86_64代表主机的平台可以是32位系统也可以是64位系统,arm代表的是32位架构同时这个位置不带linux也代表了这个编译器是编译不带操作系统的裸机程序,eabi代表嵌入式应用程序二进制接口

    • [gcc]-[arm]-[8.3]-[2019.03]-[x86_64]-[arm-linux]-[gnueabihf].tar.xz
      与上面最大的不同是arm变成了arm-linux,代表该编译器是编译跟linux系统相关的,eabi变成了gnueabihf,其中gnueabi代表使用了GNU针对PC的Glibc库(因为这里是编译d操作系统的),其中hf代表浮点计算使用hard float方法
      armel、armhf和arm64的关系与区别

    • [gcc]-[arm]-[8.3]-[2019.03]-[x86_64]-[aarch64]-[elf].tar.xz
      aarch64代表目标板是armv8 64位架构不带操作系统,elf代表用嵌入式库uclib或newlib,同时64位的arm默认就是hf的,因此不需要hf的后缀
      elf和eabi区别
      elf和eabi区别

    • [gcc]-[arm]-[8.3]-[2019.03]-[x86_64]-[aarch64-linux]-[gnu].tar.xz
      aarch64-linux代表armv8 64位架构的带linux操作系统的,gnu代表使用了GNU针对PC的Glibc库

    • [gcc]-[arm]-[8.3]-[2019.03]-[x86_64]-[aarch64_be-linux]-[gnu].tar.xz
      be代表大端,一般别的默认用小端

    命名总结

    代表gcc编译器代表目标芯片为armgcc的版本该交叉编译工具发布时间主机的平台可以是32位系统也可以是64位系统目标芯片运行的架构和是否带操作系统用什么库相关
    32位裸机gccarm8.32019.03x86_64arm
    (32位无操作系统的裸机)
    eabi
    32位带操作系统arm-linux
    (32位linux系统)
    gnueabihf
    (针对使用GNU针对PC的Glibc库,且是硬浮点)
    64位裸机aarch64
    (64位无操作系统的裸机)
    elf
    (用嵌入式库uclib或newlib)
    64位带操作系统aarch64-linux
    (64位linux系统)
    -gnu
    (用GNU针对PC的Glibc库,64位默认是硬浮点)

    使用方法

    1. 下载解压到目录下,然后在~/.bashrc里将目录加入环境
      export PATH=/home/hsq/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin:$PATH#该目录下的aarch64-linux-gnu-gcc才是真正代替gcc进行编译的本体  
      export CROSS_COMPILE=aarch64-linux-gnu-#用于指定交叉编译,在大部分项目的makefile文件中该参数会加在gcc前面
      export ARCH=arm64#用于大部分项目指定目标架构,包括后续涉及的uboot、linux原码等项目
      
      • 1
      • 2
      • 3
    2. 查看
      aarch64-linux-gnu-gcc --version#打印出版本信息
      
      • 1
    3. 然后编译的时候就直接使用
      aarch64-linux-gnu-gcc main.c -o main.out#跟gcc一样用
      make -j4#完成第一步的添加环境变量后就可用于大部分项目的makefile
      
      • 1
      • 2
    展开全文
  • 交叉编译器详解

    2019-11-11 10:35:21
    1.什么是交叉编译器 嵌入式开发一般都在x86平台下开发,而编译出来的软件要在arm平台上跑,所以需要交叉编译器,交叉的意思就是在一个架构上编译出另一个架构的代码。arm平台一般资源有限,不适合做开发 交叉...

    1.什么是交叉编译器

    嵌入式开发一般都是在x86平台下开发,而编译出来的软件要在arm平台上跑,所以需要交叉编译器,交叉的意思就是在一个架构上编译出另一个架构的代码。arm平台一般资源有限,不适合做开发

    交叉编译器安装方式

    以Linaro gcc为例子:
    1.sudo apt-get install gcc-arm-linux-gnueabihf
    2.官网下载:https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
    在这里插入图片描述
    在这里插入图片描述

    命名规则

    在这里插入图片描述在这里插入图片描述
    以arm-linux-gnueabihf-gcc为例说明各字段含义
    1.arm表示目标芯片架构,若为大端模式则armeb或者armbe
    2.linux表示运行环境为linux系统,程序可以使用linux下的c标准库或者linux内核提供的API。armeabi-gcc 或 arm-none-eabi-gcc 表示它们的目标程序运行在无操作系统的环境中。实际开发基本都是使用arm-linux-gnueabihf-gcc,包括裸机和uboot,内核代码本身,如果没有用到linux相关的不会出错,但是这样不够严谨,所以最好使用arm-none-eabi-gcc
    3.表示c标准库类型为gnu的glibc库
    4.eabi表示嵌入式架构
    5.hf:硬浮点模式 ,没有hf的表示软浮点模式
    6.编译器版本号,一般都是向下兼容,但是某些程序需要特定版本的编译器

    编译器类型对程序的影响

    编译器 和库要配套,如果使用软浮点编译,提供库文件又是硬浮点模式的就会出错

    展开全文
  • 交叉编译器制作流程

    2019-05-31 00:28:28
    由于项目的需要,我们需要一个能在x86平台...什么是交叉编译器? 为什么叫“交叉编译器”(cross compiler),就是因为它跨平台来编译程序!做交叉编译器要弄清楚3个概念:host, build, target: build -- 你在什么...
  • 什么是交叉编译器?我们在linux上开发一般使用的都gcc,gcc编译的二进制文件都可以在PC机上执行的,但是不能在ARM上执行。交叉编译器就是可以在PC机上编译可以在ARM上执行的可执行文件。背景:使用交叉编译器编译...
  • 交叉编译器的制作

    2017-04-03 15:57:06
    本篇文章介绍交叉编译以及如何制作交叉编译器。 一、什么是交叉编译? 工欲善其事,必先利其器。我们搞嵌入式开发的,需要在不同的平台编译出我们板子所需要的程序,因此需要一种编译工具,交叉编译器就是在一种...
  • 如何看交叉编译器类型

    千次阅读 2020-03-11 23:07:19
    往往我们在交叉编译的时候会用到不同版本,不同命名方式的交叉编译器。 那么究竟应该怎么区分使用呢,一种方法从...一个交叉编译器我们可以说编译器的-gcc多少位的,编译出来的目标程序多少位的。 通过file...
  • 什么是交叉编译器 交叉编译器可以使我们在主机上编译出可以在嵌入式设备上运行的程序 下载地址 arm官方提供的下载地址在这:链接 link ubuntu直接apt-get下载 sudo apt-get install gcc-aarch64-linux-gnu#...
  • 64位Linux的ARM交叉编译器

    热门讨论 2013-08-22 15:25:08
    想从android代码里提取出64位交叉编译器,结果编译内核报错,才发现提取出来的交叉编译器中大部分64位的,可objcopy却32位的,我想不通为什么。 我只能找个64位的objcopy代替,好不容易找到了,替换成64位的...
  • 1. 什么是编译器以及交叉编译器 对于C语言程序,编译器是啥?通俗的来讲编译器就是把C程序“翻译”机器语言(二进制)的“翻译官”,那么编译器和交叉编译器什么区别?下面通过一张图感受一下: 图1-1 编译器和...
  • 1.为什么要有交叉编译器? \qquad一般电脑X86架构,而单片机一般不是,比如单片机ARM架构,那么gcc编译生成的程序只能在X86的架构上运行,而不能在ARM架构上运行,所以需要交叉编译器编译生成能在ARM架构上运行...
  • 1.交叉编译是什么 交叉编译:是指在一个平台下生成另外一个平台的可执行代码。在window上面编译C51代码,并编译成可执行文件,如:xx.hex。 2.编译是什么 编译指在该平台下编译自己平台可执行的代码。 3.为什么要...
  • 本节将学习如何为特定目标平台创建专属编译器 ...为什么要搞一个交叉编译器? 事实上类Unix系统的编译环境已经足够完善,但其缺点太完善了,我们在编译时不知道到底使用了什么样的库文件,因此我们需要创建一个...
  • 编译Linux kernel时设置交叉编译器

    千次阅读 2015-11-22 21:46:27
    在默认情况下,内核构建系统默认内核本地编译,即编译的内核运行在与宿主系统相同的体系架构上。如果为其他的架构编译内核...CROSS_COMPILE指定使用的交叉编译器的前缀。对于我们的交叉工具链来说,其前缀i686
  • 一、GCC简介GCC(GNU Compiler Collection)一套功能强大、性能优越的编程语言编译器,它GNU计划的代表作品之一。GCC Linux 平台下最常用的编译器,GCC 原名为 GNU C Compiler,即 ...二、什么是交叉编译简单地...
  • 自己之前一直没搞清楚这两个交叉编译器到底有什么问题,特意google一番,总结如下,希望能帮到道上和我有同样困惑的兄弟….. 一. 什么是ABI和EABI1) ABI: 二进制应用程序接口(Application Binary Interface (ABI) for ...
  • 发布包提供两种编译工具链arm-hisiv300-linux和arm-hisiv400-linux,其中armhisiv300-linux为基于uclibc的...选用哪种交叉编译器,可参看SDK里的rootfs为什么类型。 本文选用的arm-hisiv300-linux 安装步骤...
  • 什么是交叉编译:在计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,如在keil软件编译,在单片机上运行。这就是交叉编译。
  • 第一步:把交叉编译工具拷贝到你的linux虚拟机上,可以拷贝到你的root文件夹上哦,(注意:根据编译内核的交叉编译工具版本号做决定,根据你的开发板,根据板子上用的版本是什么型号的,你就选择什么型号的编译工具...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 566
精华内容 226
关键字:

交叉编译器是什么