交叉编译工具

这篇具有很好参考价值的文章主要介绍了交叉编译工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

工具链有一个松散的名称约定,如 arch[-vendor][-os]-abi-language .

  • arch 适用于架构,编译器用于哪个目标平台: arm , mips , x86 , i686 ...

  • vendor 是工具链供应商,以厂家名称命名的,也有以开发板命名的,或者直接是none或cross的,或者留空: apple 

  • os 适用于操作系统: linux , none (裸机)

  • abi 用于应用程序二进制接口约定: eabi , gnueabi , gnueabihf                                   gnu等价于glibc+oabi;gnueabi等价于glibc+eabi。若不指定,则也可以留空不填

  • language:编译器用于编译何种语言,最常见的就是gcc,g++

arm-xxx-gcc 还分为是否支持操作系统
支持操作系统:arm-none-linux-eabi-gcc
不支持操作系统:arm-none-eabi-gcc

ABI 和 EABI

ABI:二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture)。在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口。

EABI:嵌入式ABI。嵌入式应用二进制接口指定了文件格式、数据类型、寄存器使用、堆积组织优化和在一个嵌入式软件中的参数的标准约定。开发者使用自己的汇编语言也可以使用 EABI 作为与兼容的编译器生成的汇编语言的接口。

两者主要区别是,ABI是计算机上的,EABI是嵌入式平台上(如ARM,MIPS等)

arm-none-eabi-gcc:用于编译 ARM 架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux 应用 Application),一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片。

arm-none-linux-gnueabi-gcc:是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM(32位)系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。
arm-linux-gnueabihf-gcc:是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM(32位)系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。
aarch64-linux-gnu-gcc:是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARMv8 64位目标中的裸机程序、u-boot、Linux kernel、filesystem和App应用程序。

简单来说,arm-linux-gcc 是 arm-none-linux-gnueabi-gcc 的一个软链接:交叉编译工具

 文章来源地址https://www.toymoban.com/news/detail-479516.html

到了这里,关于交叉编译工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ARM & Linux 基础学习 / 配置交叉编译工具链 / 编译 Linux 应用和驱动 / 编译内核

    编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料(如 百问网的《嵌入式Linux应用开发完全手册》,在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO:开发板资料》或《2.2 全系列Linux教程:在线视频与配套资料》里面可以下载到),还有参考 菜

    2024年02月04日
    浏览(54)
  • 压力测试工具stress-ng交叉编译

    下载源码, stress-ng版本有好几个版本,不同开源仓库差别并不太大 https://github.com/ColinIanKing/stress-ng 解压并进入目录 设置环境变量 本次 aarch64-linux-gnu-gcc 进行举例,实际设置成你自己的交叉编译工具即可。 交叉编译 如果提示没有aarch64-linux-gnu-gcc的话,如下 使用find命令查找下

    2024年02月12日
    浏览(78)
  • LFS学习系列 第5章. 编译交叉工具链(1)

    本章介绍如何构建交叉编译器及其相关工具。尽管这里的交叉编译是“伪造”、“假装”的,但其原理与真正的交叉工具链相同。  本章中编译的程序将安装在$LFS/tools目录下,以使它们与以下章节中安装的文件分离。而另一方面,库被安装到它们的最终位置,因为它们属于我

    2024年02月12日
    浏览(27)
  • Debian如何让multilib和交叉编译工具链共存

    Debian一个槽点是gcc/g++/gfortran-multilib和交叉编译工具链如gcc/g++/gfortran-riscv64-linux-gnu会互相卸载,解决办法如下: 1、安装build-essential(gcc/g++/libc6-dev/make/dpkg-dev)和gfortran,记下被安装的gcc版本,这里假设被安装的是gcc-12 2、multilib安装带版本号的包并创建asm符号链接 事实上gcc

    2024年02月14日
    浏览(37)
  • 全志H616交叉编译工具链的安装与使用

    交叉编译是一个平台生成另外一个平台的可执行代码,同一体系结构可以运行不同的操纵系统,同时不同的操作系统也可以在不同的体系中运行。 例如我们在Ubuntu Linux上编写orangepiZero2 的代码编译为a.out是在orangepiZero2上运行并不是在Ubuntu Linux上运行 那什么是编译呢? 编译是

    2024年02月13日
    浏览(51)
  • 交叉编译工具链(以STM32MP1为例)

    在一个系统上进行编译,在另一个系统上进行执行 注意:OpenSTLinux已经提供了编译框架,不需要命令行手工编译 交叉编译工具链通常包括了交叉编译器、交叉链接器以及一系列的库和头文件,它们能够将源代码从一个平台编译成另一个平台的 可执行文件 。 1.获取交叉编译工

    2024年02月08日
    浏览(24)
  • 【linux踩坑】交叉编译程序时,要保持工具链版本一致

            记录交叉编译qt时踩到的一个坑:工具链版本要保持一致。          在电脑端编译开发板上的程序时,需要使用交叉编译器,比如我常用的arm-linux-gnueabi-gcc编译器,就属于arm-linux-gnueabi工具链。这个工具链内包含一系列以arm-linux-gnueabi-开头的软件,比如g++ ar

    2024年02月08日
    浏览(49)
  • DDR压力测试工具memtester的源码解读和交叉编译

    最近公司的一款产品,核心板上的DDR由工业级的降为民用的,程序运行过程中容易出现内存泄漏的问题。所以再产品测试流程中增加DDR的压力测试。 使用最流行的开源工具 memtester 但是memtester默认测试循环次数太多,完成一次压力测试需要20多分钟不利于生产测试,于是需要

    2024年02月11日
    浏览(51)
  • ARM交叉编译工具链 gcc-arm-none-eabi

    1,交叉编译工具链简介 (1)命令规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch – 体系架构ÿ

    2024年03月25日
    浏览(59)
  • RISC-V交叉工具链riscv-gnu-toolchain编译

    注意上面 clone 的仓库,我们称其为构建脚本仓库,其并不包含 gcc 等工具源码,这些源码以 git 的 submodule 的形式作为子仓库的内容发布,所以需要继续更新子仓库。 注意: 使用上诉命令通过 submodule 方式下载困难的话,可以手工通过下载并切换到指定的分支。如 binutils 可通

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包