搜索
bottom↓
回复: 13

(转)arm交叉编译器gnueabi、none-eabi等的区别

[复制链接]

出0入0汤圆

发表于 2015-8-12 10:22:19 | 显示全部楼层 |阅读模式
转自:http://www.veryarm.com/296.html

一直以为“arm-none-eabi-gcc” 里的none是not的意思, 就是说不支持EABE的GCC,看了文章后才发现有多么的自以为是,下面是转过来的一部分内容。分享给需要的童鞋:



命名规则交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]
  • arch - 体系架构,如ARM,MIPS
  • vendor - 工具链提供商
  • os - 目标操作系统
  • eabi - 嵌入式应用二进制接口(Embedded Application Binary Interface
根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如
  • arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2)。他使用的是newlib这个专用于嵌入式系统的C库。
  • arm-none-linux-eabi:用于Linux的,使用Glibc

实例1、arm-none-eabi-gccARM architectureno vendornot target an operating systemcomplies with the ARM EABI
用于编译 ARM 架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux 应用 Application),一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片使用,所以不支持那些跟操作系统关系密切的函数,比如fork(2),他使用的是 newlib 这个专用于嵌入式系统的C库。
2、arm-none-linux-gnueabi-gcc(ARM architecture, no vendor, creates binaries that run on the Linux operating system, and uses the GNU EABI)
主要用于基于ARM架构的Linux系统,可用于编译 ARM 架构的 u-boot、Linux内核、linux应用等。arm-none-linux-gnueabi基于GCC,使用Glibc库,经过 Codesourcery 公司优化过推出的编译器。arm-none-linux-gnueabi-xxx 交叉编译工具的浮点运算非常优秀。一般ARM9、ARM11、Cortex-A 内核,带有 Linux 操作系统的会用到。
3、arm-eabi-gccAndroid ARM 编译器。
4、armccARM 公司推出的编译工具,功能和 arm-none-eabi 类似,可以编译裸机程序(u-boot、kernel),但是不能编译 Linux 应用程序。armcc一般和ARM开发工具一起,Keil MDK、ADS、RVDS和DS-5中的编译器都是armcc,所以 armcc 编译器都是收费的(爱国版除外,呵呵~~)。
5、arm-none-uclinuxeabi-gcc 和 arm-none-symbianelf-gccarm-none-uclinuxeabi 用于uCLinux,使用Glibc。
arm-none-symbianelf 用于symbian,没用过,不知道C库是什么

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2015-8-12 11:06:24 | 显示全部楼层
不错

出0入0汤圆

发表于 2015-8-12 14:04:26 | 显示全部楼层
很好的普及文档, lz 是有心人.

出0入0汤圆

发表于 2015-8-12 14:06:32 | 显示全部楼层
简单易懂,这下明白了

出0入0汤圆

发表于 2015-8-12 14:19:32 | 显示全部楼层
原来如此,用了这么久一直没去了解过

出0入0汤圆

发表于 2015-8-12 16:32:39 | 显示全部楼层
我看ecos下面用的是arm-eabi-gcc,这又算是什么vender呢?

出0入0汤圆

发表于 2015-8-12 16:52:54 | 显示全部楼层
涨姿势,字数你妹啊你妹啊

出0入0汤圆

 楼主| 发表于 2015-8-12 22:37:54 | 显示全部楼层
Nexus 发表于 2015-8-12 16:32
我看ecos下面用的是arm-eabi-gcc,这又算是什么vender呢?

我想应该也是none了吧。

出0入0汤圆

发表于 2015-8-12 23:48:59 来自手机 | 显示全部楼层
多谢楼主扫盲!        

出0入0汤圆

发表于 2015-8-13 15:44:22 | 显示全部楼层
spark51 发表于 2015-8-12 22:37
我想应该也是none了吧。

那我还有个问题,eCos提到工具链基于NewLib。这个我们一般使用有什么需要考虑的呢?

出0入0汤圆

发表于 2015-8-13 18:59:42 | 显示全部楼层
本帖最后由 imjacob 于 2015-8-13 19:01 编辑

文章不错,但好像没讲 none的意思啊arm-none-eabi-gcc 和 arm-eabi-gcc什么区别呢?

另外,这里讲的 arm-none-eabi-gcc 和我以前看到过的arm-elf-gcc 似乎是同一个东西,不知对否

出0入0汤圆

发表于 2015-8-13 19:22:22 | 显示全部楼层
总之,gcc的编译工具非常混乱,容易使人晕头转向。

出0入0汤圆

发表于 2015-9-14 14:25:29 | 显示全部楼层
能不能介绍下版本的问题

arm-none-linux-gnueabi-gcc

有2008,2009,q1,q3什么的什么意思?

出0入4汤圆

发表于 2016-2-23 11:02:56 | 显示全部楼层
不错,正想了解一些交叉编译的东西。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 07:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表