|
也许你看了很多关于这两个编译器的说法,当然众说纷纭。
在这里我来简单的对这两个编译器器进行一个小总结,顺便提提IAR以及GCC。
很多人都会说IAR编译器效率非常高。也有人说GCC非常牛,而且免费,还可以自己编译。也许你们都说的非常的对,我猜想你们肯定都是从自身使用上或功能选择上做出的选择,首先我们来谈谈编译效率问题。
GCC,说实话,无论是优化还是编译效率是最低的,这是无可厚非的,这就好比是一朵精心栽培的话和一朵野花做比较一样。GCC就好比是一朵野花多姿多彩。但是永远没有精心栽培的话强韧。至少对我而言除了简单的编译编译Linux相关的东西,一般不用于裸机开发,以及内核开发。
IAR,在很多人眼里,这款编译器效率最高,其实我倒不尽然,因为如果用它来编译完全相同的代码,包括最底层的代码,你会发现面对强大的arm编译器它基本没有任何优势可言。
这里就说到ARM和KEIL了,众所周知ARM收购了KEIL,那么他们的编译器关系究竟是怎么样的,在长期的使用和破解过程中发现,其实KEIL使用的编译器完全是ARM的编译器。至少现在是。有很多人会说KEIL编译器是ARM编译器的精简版本,其实这种理解不是很正确。因为两者编译器完全一样只是KEIL编译器版本要低一个而已。那差别究竟在哪里,其实就在证书上面,如果你使用不同证书得到的编译选项(至少设备支持是不同的)。KEIL的证书不支持新设备,是少有ARM-CORTEXA系列,或高版本是不支持的。当然如果你破解后仅仅是KEIL所限制的局限性功能,那么你的破解是不算成功。两个东西完全一样,怎么会编译效率不一样呢?这个问题。。。哎!
其他很多的编译器都是基于GCC然后改装再改装构造出来的。
对于IDE环境,不得不提一下,Eclipse以及MdK,IAREW,其他环境。当然其他环境是最糟糕的一个,比如大家喜欢的虚拟一个linux操作系统然后在上边编译,过程之繁琐,实际上就算是编译内核我都从来不选择在linux编译,那效率其实不咋样效率极其低下(GNU大部分工具都有基于Windows的了为什么还要那么麻烦,而其目前微软出的Windows8是非常出色的操作系统,无论性能还是兼容性,到如今还没有谁能与之匹敌吧!你再也不会感受到XP,WIN7等,无缘无故的假死了 )。对于IAREW,大家不能忍受的永远是只有那几个枯燥的图标,没有提示的代码。IAREW辅助功能确实太弱了,当然为了满足开发者需求Iar已有Eclipse插件,不过还是得先装IAR,然后配合Eclipse使用,这点不是很爽。MDK估计是我最喜欢的IDE了(当然这是个人喜好了),简洁,提供的助手基本满足要求。Eclipse众人都喜欢的东西,插件多,辅助功能强,但是到目前为止能支持自动生成编译汇编代码的插件,估计没有几个,免费的都不用提,垃圾!根本不可能。而唯独仅有几家公司可以,IAR,Mentor,DS-5(我使用过的就只有这三个)其它的吧都不提了。为什么Eclipse那么强大我却不喜欢,原因只有一个,这玩意儿是Java的,操作系统要运行JAVA虚拟机,然后JAVA虚拟机再去运行它,如果给Java虚拟机搞个界面,再搞点接口,我靠那不是相当于运行一个虚拟机,我操我没有那么多额外的资源做这些屁事。当然这里有点个人情绪。
以上信息仅仅个人愚见,我的目光目前就这么远,不对之处还望多多指正! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|