找回密码
 立即注册
搜索
查看: 349|回复: 29

C++编译器的比较

[复制链接]

12

主题

615

回帖

833

积分

金牌会员

积分
833
发表于 2003-1-15 14:03:43 | 显示全部楼层 |阅读模式
关于c++的编译器现在有很多,各有所长。不可能每个人都全部用过。  
我想统计一下现在的主流编译器都有什么。linux,windows,dos下的什么编译器最流行,也最好!请各位发表意见并给出你所用的编译器的好处。  
---------------------------------------------------------------  
我主要从事windows下的编程,所以我一般用vc编译,毕竟是当今软件霸主的产品,性能和功能自然不必问了。就是编译速度有点慢。所以我在写小程序的时候有lcc编译器。性能也不错,而且编译速度极快。  
还有就是我觉得vc对于初学者来说可能不是好的编译器,因为mfc把所有的程序执行机制都封装在它的类里面。初学者看到其代码可能不明所以然。但是lcc不错,很适合初学者。它是标准的sdk编译器。程序的运行机制和消息处理机制写的非常清楚。  
大家见仁见智吧!  
我的选择:
WINDOWS首选VC  初学者,小项目用LCC  

我主要用这两种编译器,其他的很少用,所以不敢评价。请大家评论。  
---------------------------------------------------------------  
我这儿有数十种C/C++编译器。  
如下:  
GCC家族有  
   Cygwin  
   Mingw32  
   DJGPP  
   Dev-C++(Mingw32)  
   还有正宗的GNU  GCC  2.95.5~3.0.0.4版本  
MS家族有  
   MSC  5.0、6.0、7.0  
   MSQC  1.0、2.5  
   MSVC  1.0、4.2、6.0、7.0  
Borland家族有  
   TC  1.0、2.0  
   TC++  1.01、3.0  
   BC  3.0、3.1、4.0、4.5、5.0、5.02  
   BCB  3.0、5.0、6.0  
其它有  
   Intel  C/C++  5.0  
   Watcom  C/C++  11.0、11.0c  
   VectorC  1.3.3  
   IBM  VisualAge  for  C++  
   DigitalMars  C/C++  
   KAI  C/C++  4.03f  for  RedHat  7.2  
   Lcc4.1  
   LCC-WIN32  2001-09-25~2002-04-28日版  
   Small  C  
   CC386  
   Pacific  C  
另外还有C的解释器  
   Quincy  
   Eic  
   CINT  
     
   上面提到的编译器/解释器,大部分我都使用过。现在固定使用VC7.0  Cygwin  Mingw32  VectorC和LCC-WIN32这五种编译器。

   在GCC家族中GNU  GCC是根本,其它的编译器版本都是从它导出的。其中,Cygwin和Mingw32都是WIN32平台下的编译器,DJGPP是DOS下的32位编译器。大家所熟知的DEV-C++充其量只是GCC的一个外壳,它所自带的编译器就是Mingw32的一个版本。这些GCC的版本中,Cygwin是最大的,它与其说是一个编译器,倒不如说是一套编程工具。它不仅有编译器,还有其它很多的工具。其实,它就是一个UNIX系统在WIN32平台上的实现。实现了大多常用的UNIX工具,最近的版本中连Apache这样的“工具”都集成进来的。不过,Cygwin虽然功能强大,但它却不是很易用(和UNIX相似,熟悉UNIX的人用它可以很快上手),因为太多其它的工具分散了人们的注意力。相比之下Mingw32就要好用得多,它只有最基本的几个编程工具(只可惜它不自带GDB)。GCC中并不只是C/C++编译器,其中还有很多其它的编译器如JAVA,Fortran,ADA等。它是一个编译器集合,不过有些编译器只能在UNIX系统上用。MS家族的编译器就不用说了,大家对它们都很熟悉。VC  7.0(VC.NET)是它的最新产品。Borland家族也不用说,大家也是耳熟能详。最近它才推出了BCB 6.0。
  
   其它的编译器如:Intel  C/C++大家一看名称就知道是Intel的东西,它和VC6完全兼容,不过要挂在VC6下才能用。Watcom  C/C++是早先编译器四国大战中的一员,原本是很不错的东西,可惜战略不对,现在已不见声息了。倒是以它为基础的一个OpenWatcom现在还在奋战。VectorC是我近日才发现的一个好东东,它是个纯C的编译器。IBM的VisualAge for  C++原本是IBM想用来淌C++编译器这片浑水的东西,不过IBM的战略改了,它就被放弃了。DigitalMars  C/C++的前身的Symantec C++(它也是编译器四国大战中的一员),不过现在Symantec不做了,于是它的作者就把它改成了DigitalMars  C/C++开放给大家使用。以上这些都是WIN32平台上的东西。KAI  C/C++是个很强大的C/C++编译器,它是个多平台的编译器。不过现在被INTEL收购了,已经停止开发了。Lcc4.1是个纯C的编译器它是开放源代码的。不过不怎么好用。LCC-WIN32是一个在LCC基础上开发的C语言的集成开发环境,很好用,而且有很详细的资料,FREE!Pacific  C是一个纯DOS的C的集成开发环境,就不多说了。Small  C  CC386都是开放源代码的编译器,它们都很简单,应用来给大家学习编译器的。Quincy  Eic  CINT都是C的解释器,是用来让大家学习C语言的其中CINT的功能很强大,还支持一些C++的特性。  
   当然还有很多其它的编译器,这里我给出的编译器都是可以在WIN32或DOS平台上用的(除KAI外)。UNIX平台上的编译器还是以GNU的为主,其它的我就不是很清楚了。

   在以上的编译器中,最特别的就是VectorC这个东西只支持纯C。但它却号称是最快的编译器,不过经过我的试验,它的确在有些情况下强过其它编译器很多!而且它还有个交互式的优化器,可以让你直接看到C代码对映的汇编代码。Cygwin和Mingw32为一母所生,其运行效果相差不大。它们生成的代码效率都很不错,编译的速度也很快,最值得一提的是它们对C++的特性的支持算是所有编译器中最完全的,而且它们还支持C99的大部分特性。这一点很是不错!大家对MS的VC已经很熟悉了,本不用我多说。不过在它的最新的产品VC7.0中,有很大的改进。它对C++的特性的支持比6.0有了很大的提高,是我所用的编译器中是仅次于GCC的。而且它编译出的程序,运行速度很快!仅有少数时候次于VectorC与GCC,其它情况都是最快的!其平均运行速度是最快的。对Borland的产品我也无需多说。它的TC2.0与BC3.1都是我最喜欢的东西。可是现在的BCB却大不如前了,编译的速度和VC6一样慢!IDE还有较多的BUG。最令人想不通的是它生成的代码的运行速度很慢,比LCC-WIN32还慢!它唯一值得一提的就是它的RAD做的比MS的好。Intel的编译器大家可能不熟,它太贵了!还要有VC的支持,很不划算,而且编译速度比VC6还慢。不过它的代码质量很不错。DigitalMars  C/C++没有什么亮点,编译速度较快,代码执行速度适中,对C++特性支持还算不错。LCC-WIN32是个很不错的集成开发环境,它只支持纯C。它的编译速度极快!代码执行速度较慢。不过它的最大亮点在于它的IDE,在所有的FREE编程工具中,它的IDE是最专业的,有很强大的代码分析,管理功能。而且它提供了大量的编程资料。  
   我曾对一些编译器的代码执行效率做过一些测试,以下是概况:  
   1.  VectorC、VC  7.0  (极快)  
   2.  Intel  C/C++、VC  6.0、GCC  (很快)  
   3.  DigitalMars  C/C++  (一般)  
   4.  LCC-WIN32、BCB、BC5.02  (较慢)  
当然,我所做的测试比较片面。不过在很大程度上已能反映其大概状况。  
(我也曾看到过一个测试,其中Intel的编译器是最快的,比VC  6.0和GCC要快10%~50%,而我所测的结果中,GCC  >=VC6  >Intel C/C++ )  
(以上评论都是个人观点)

134

主题

1122

回帖

1709

积分

荣誉版主

积分
1709
发表于 2003-1-15 14:28:28 | 显示全部楼层
不错,能够分析的比较透彻。
鼓励原创!
回复

使用道具 举报

48

主题

527

回帖

780

积分

荣誉版主

积分
780
发表于 2003-1-16 09:01:40 | 显示全部楼层
不错,支持一下
回复

使用道具 举报

2

主题

20

回帖

29

积分

新手上路

积分
29
发表于 2003-1-16 09:19:37 | 显示全部楼层
不错
回复

使用道具 举报

12

主题

615

回帖

833

积分

金牌会员

积分
833
 楼主| 发表于 2003-1-16 15:55:39 | 显示全部楼层
这是从CSDN转过来的,好贴应该共赏!
:H
回复

使用道具 举报

101

主题

467

回帖

772

积分

高级会员

积分
772
发表于 2003-1-16 20:27:16 | 显示全部楼层
我只想知道哪个对学习有好处:(
回复

使用道具 举报

12

主题

615

回帖

833

积分

金牌会员

积分
833
 楼主| 发表于 2003-1-17 11:22:02 | 显示全部楼层
DEV-C++用来学习很好的,
当然也可以用VC 6.0 Console。
回复

使用道具 举报

61

主题

342

回帖

529

积分

高级会员

积分
529
发表于 2003-1-21 15:47:28 | 显示全部楼层
同感
回复

使用道具 举报

8

主题

51

回帖

82

积分

注册会员

积分
82
发表于 2003-1-23 10:54:37 | 显示全部楼层
不错,
什么时候试试vc7
回复

使用道具 举报

26

主题

137

回帖

221

积分

海星

积分
221
发表于 2003-1-24 16:05:13 | 显示全部楼层
还有CodeWarrior也不错,是基于GNU的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-21 18:04 , Processed in 0.102212 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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