arm-eabi-gcc 和 arm-none-eabi-gcc 都是基于 GCC 的交叉编译器

 arm-eabi-gcc 和 arm-none-eabi-gcc 都是基于 GCC 的交叉编译器,用于编译 ARM 架构的嵌入式系统。它们的命名规则如下:

  • arm 表示目标架构是 ARM。
  • eabi 表示嵌入式应用程序二进制接口(Embedded Application Binary Interface),是一种用于嵌入式系统的标准接口。
  • gcc 表示 GNU 编译器集合(GNU Compiler Collection),是一种开源的编译器。
  • none 表示没有指定供应商或操作系统。

它们的主要区别是:

  • arm-eabi-gcc 是 Android 平台使用的交叉编译器,它可以编译 Android 的 boot、kernel、filesystem 和应用程序等。它使用的是 Bionic C 库,这是一种专门为 Android 设计的轻量级 C 库。1
  • arm-none-eabi-gcc 是 ARM 官方提供的交叉编译器,它可以编译 ARM 的裸机系统,不适用于编译 Linux 应用程序。它使用的是 Newlib C 库,这是一种专门为嵌入式系统设计的小型 C 库。2

我在网上搜索了一些可能的来源和下载链接,您可以参考以下信息:

  • Android NDK | Android Developers:这是 Android NDK 的官方网站,Android NDK 是一个用于在 Android 应用中集成 C 和 C++ 代码的工具集。Android NDK 提供了一系列的工具,包括 arm-eabi-gcc,来帮助您构建,调试和优化您的本地代码。您可以在这个网站上下载 Android NDK 的最新版本,然后按照文档的指导来使用 arm-eabi-gcc 编译器。
  • GNU Arm Embedded Toolchain Downloads:这是 GNU Arm Embedded Toolchain 的官方网站,它是一个免费的、开源的、用于 C、C++ 和汇编编程的工具集。它支持 32 位的 ARM Cortex-A、ARM Cortex-M 和 ARM Cortex-R 处理器系列。它可以在 Windows、Linux 和 Mac OS X 操作系统上进行嵌入式软件开发。您可以在这个网站上下载该工具链的最新版本,也可以找到源代码包和安装说明。
  • ARM-Linux 交叉编译工具链安装_arm-linux-gcc交叉编译工具链安装-CSDN博客:这是一个 CSDN 博客的网页,它介绍了如何在 Linux 系统上安装 arm-linux-gnueabihf-gcc 交叉编译工具链,它是由 Linaro 公司基于 GCC 推出的一个工具链,可以用于编译 ARM(32 位)系统中所有环节的代码。
  • ARM交叉编译工具链 gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别-CSDN博客:这是一个 CSDN 博客的网页,它解释了不同的交叉编译器的命名规则,包括 gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi 等后缀的含义和区别。
  • 交叉编译学习笔记(二)——交叉编译器的命名规则-腾讯云开发者社区-腾讯云:这是一个腾讯云开发者社区的网页,它也介绍了交叉编译器的命名规则,以及如何选择合适的交叉编译器。

 arm-eabi-gcc 交叉编译器

您提供的网站是 Arm GNU Toolchain 的官方网站,它提供了不同的主机操作系统和目标架构的交叉工具链。您可以根据您的需求选择合适的下载链接,但是我建议您参考以下的指导:

  • 如果您的主机操作系统是 Windows,您可以选择 Windows 32-bit Installer 或者 Windows 32-bit ZIP package。这两个链接都可以提供 arm-none-eabi-gcc 编译器,但是安装器可以自动将编译器的路径添加到您的环境变量中,而 ZIP 包则需要您手动解压缩和配置。您可以根据您的喜好选择其中一个。
  • 如果您的主机操作系统是 Linux,您可以选择 Linux x86_64 Tarball 或者 Linux AArch64 Tarball。这两个链接都可以提供 arm-none-eabi-gcc 编译器,但是您需要根据您的主机架构选择合适的版本。如果您的主机是 x86_64 架构,您可以选择 Linux x86_64 Tarball;如果您的主机是 AArch64 架构,您可以选择 Linux AArch64 Tarball。您需要解压缩这些文件,然后将编译器的路径添加到您的环境变量中,才能使用这个编译器。
  • 如果您的主机操作系统是 Mac OS X,您可以选择 Mac OS X 64-bit Tarball 或者 Mac OS X 64-bit Package。这两个链接都可以提供 arm-none-eabi-gcc 编译器,但是 Tarball 需要您手动解压缩和配置,而 Package 可以自动安装和配置。您可以根据您的喜好选择其中一个。

您可以在这个网页上找到这些下载链接:GNU Arm Embedded Toolchain Downloads。您也可以在这个网页上找到更多的信息,如安装说明、源代码包、已知问题等。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/174914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用conan包 - 使用配置文件

使用conan包 - 使用配置文件 主目录 conan Using packagesUsing profiles 本文是基于对conan官方文档Using profiles的翻译而来, 更详细的信息可以去查阅conan官方文档。 This section shows how to setup your project and manage dependencies (i.e., install ex…

感染了后缀为.404mckay-V-XXXXXXXX勒索病毒如何应对?数据能够恢复吗?

导言: 近年来,网络安全威胁日益严峻,其中之一便是V系列的勒索病毒之.404mckay-V-XXXXXXXX勒索病毒和.ad3for-V-XXXXXXXX勒索病毒。本文将深入介绍这一威胁的特点、感染方式,并提供详尽的数据恢复方法和有效的预防措施&#xff0c…

背包9讲系列1-01背包问题

一、前言 最近打算出一个背包问题的专栏,详细介绍一下常见的几种不同类型的背包问题及其解题思路和方法,欢迎各位留言探讨。 二、什么是背包问题? 背包问题是动态规划中的一个分支,其目标是在给定的一组物品中选择一些物品放入…

flink消费kafka限制消费速率

flink版本1.14 别的版本类似 需要速率限制的情况 1.任务异常在停止的时间内大量数据挤压 2.新任务上线需要铺底数据,消费几天前的数据 在不增加内存和并行度的情况下,如果任务启动可能会造成oom,这时需要进行速率限制。 前提 漏桶算法(Leaky Bucket Algorithm): 原…

基于IDEA+SpringBoot+Mysql开发的在线考试系统

基于springboot的在线考试系统 项目介绍💁🏻 项目背景: 随着互联网的普及和技术的发展,传统的考试方式已经无法满足人们的需求。为了提高考试的效率和准确性,我们决定开发一个在线考试系统。该系统将提供登录、试卷列表…

UniApp 中的 u-input 属性讲解

在 UniApp 中,u-input 是一个常用的组件,用于接收用户的输入。它具有多种属性,用于控制输入框的样式和行为。下面我将为您讲解一些常用的 u-input 属性。 基本属性 value:表示输入框的初始值,可以使用 v-model 进行双…

CMake add_subdirectory

文章目录 简介基本语法 举例目录结构根目录CMakeLists子目录CMakeLists 简介 add_subdirectory 是 CMake 命令之一,用于在当前 CMakeLists.txt 文件中引入另一个子目录的 CMake 构建。这样,你可以在一个项目中组织多个子项目或子模块的构建。 基本语法…

lua完整学习笔记

lua注释 -- 单行注释 --[[ 多行注释 ]]-- lua数据结构 nil 无效值与Java的Null类似,但是在条件表示中是false boolean 布尔值,ture或者false number 双精度类型的浮点数 string 字…

【Android知识笔记】性能优化专题(四)

App 线程优化 线程调度原理 任意时刻,只有一个线程占用CPU,处于运行状态多线程并发:轮流获取CPU使用权JVM负责线程调度:按照特定机制分配CPU使用权线程调度模型 分时调度模型:轮流获取、均分CPU时间抢占式调度模型:优先级高的获取,JVM采用Android线程调度 nice值:Proc…

.NET6实现破解Modbus poll点表配置文件

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !序言 Modbus 协议是工控领域常见…

11. Mysql 子查询

Mysql 函数参考和扩展&#xff1a;Mysql 常用函数和基础查询、 Mysql 官网 Mysql 语法执行顺序如下&#xff0c;一定要清楚&#xff01;&#xff01;&#xff01;运算符相关&#xff0c;可前往 Mysql 基础语法和执行顺序扩展。 (8) select (9) distinct (11)<columns_name…

beanFactory和Factorybean有啥区别

BeanFactory和FactoryBean是Spring框架中的两个重要概念&#xff0c;它们有一些区别和不同的用途。 BeanFactory&#xff1a; BeanFactory是Spring框架的核心接口&#xff0c;它是一个工厂模式的实现。它负责创建、管理和获取应用程序中的各种对象&#xff08;也称为bean&#…

C语言线性表的实现(详解)

数据结构之线性表 ​ 线性表的基本概念&#xff1a;线性表是由0个或者多个数据元素的有限序列 ​ 特性是&#xff1a; ​ 1&#xff1a;数据元素之间都是有顺序的 ​ 2&#xff1a;数据元素的个数是有限的&#xff0c; ​ 3&#xff1a;数据元素的类型是相同的 ​ 性质是&…

mysql数据库基础知识,Mysql的索引和主键区别,数据库的事务的基本特性

文章目录 数据库基础知识Mysql的索引和主键的区别数据库的事务的基本特性 数据库基础知识 为什么要使用数据库 数据保存在内存 优点&#xff1a; 存取速度快 缺点&#xff1a; 数据不能永久保存 数据保存在文件 优点&#xff1a; 数据永久保存 缺点&#xff1a;1&#xf…

.net面试题5

1.请解释一下C#中的接口&#xff08;Interface&#xff09;。 接口是一种定义了一组方法、属性、事件或索引器的合同&#xff08;Contract&#xff09;&#xff0c;它只包含成员的声明而不包含实现。接口定义了一种行为规范&#xff0c;类可以实现一个或多个接口来满足其约定。…

Java中数据库查询方法MapListProcessor的应用

1.供应链系统的销售合同捉过了两个金额一样的&#xff0c;同一个项目 2.合同号也一样&#xff0c;oaid不一样&#xff0c;但是从OA前台只有一个 3.一个是建云的一个是泛微的 4.做下过滤&#xff0c;如果同一个合同编号&#xff0c;在泛微里面有的&#xff0c;建云的就不获取了 …

WPF面试题高级篇

WPF高级篇[8] 32. 解释SelectedItem、SelectedValue和SelectedValuePath之间的区别&#xff1f; 在WPF中&#xff0c;SelectedItem、SelectedValue和SelectedValuePath是用于处理选择控件&#xff08;如ComboBox、ListBox等&#xff09;中选定项的属性和路径。 比如当使用选…

一维数组传参的本质

一维数组传参的本质 数组我们之前学过了&#xff0c;之前也讲了&#xff0c;数组是可以传递给函数的&#xff0c;这个小节我们讨论一下数组传参的本质。 首先&#xff0c;我们从一个问题开始&#xff0c;我们之前都是在函数外部计算数组的元素个数&#xff0c;那我们可以把函…

threejs下监听mesh事件与监听3D对象的区别

先说结论 监听mesh时会导致同一mesh下同一个位置&#xff0c;如果重叠着多个3D对象&#xff0c;点击事件会被触发多次。而监听3D对象只有这个对象会触发这个事件一次。 技术架构 reactthreejsreact-three/dreireact-three/fiber 场景 有这样一段代码&#xff0c;一个网格对…

Git安装

简单粗暴&#xff0c;跟着步骤一步一步来 右键就会有了