浅析不同的C++编译器之间的不同性能
C++中的C/C++编译器现在分为许多种,各有各的优缺点,但是现在界面上最热的C/C++编译器都有什么?以及linux,windows,dos下的什么C/C++编译器最流行?好了看完本文您就会知道了。
我主要从事windows下的编程,所以我一般用vc编译,毕竟是当今软件霸主的产品,性能和功能自然不必问了。就是编译速度有点慢。所以我在写小程序的时候有lccC/C++编译器。性能也不错,而且编译速度极快。
还有就是我觉得vc对于初学者来说可能不是好的C/C++编译器,因为mfc把所有的程序执行机制都封装在它的类里面。初学者看到其代码可能不明所以然。但是lcc不错,很适合初学者。它是标准的sdkC/C++编译器。程序的运行机制和消息处理机制写的非常清楚。
我主要用这两种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
上面提到的C/C++编译器/解释器,大部分我都使用过。现在固定使用VC7.0 Cygwin Mingw32 VectorC和LCC-WIN32这五种C/C++编译器。 在GCC 家族中GNU GCC是根本,其它的C/C++编译器版本都是从它导出的。其中,Cygwin和Mingw32都是WIN32平台下的C/C++编译器,DJGPP是DOS下的32位C/C++编译器。大家所熟知的DEV-C++充其量只是GCC的一个外壳,它所自带的C/C++编译器就是Mingw32的一个版本。
这些GCC的版本中,Cygwin是最大的,它与其说是一个C/C++编译器,倒不如说是一套编程工具。它不仅有C/C++编译器,还有其它很多的工具。其实,它就是一个UNIX系统在WIN32平台上的实现。实现了大多常用的UNIX工具,最近的版本中连Apache这样的“工具”都集成进来的。
不过,Cygwin虽然功能强大,但它却不是很易用(和UNIX相似,熟悉UNIX的人用它可以很快上手),因为太多其它的工具分散了人们的注意力。相比之下Mingw32就要好用得多,它只有最基本的几个编程工具(只可惜它不自带GDB)。GCC中并不只是C/C++C/C++编译器。
其中还有很多其它的C/C++编译器如J***A,Fortran,ADA等。它是一个C/C++编译器集合,不过有些C/C++编译器只能在UNIX系统上用。MS家族的C/C++编译器就不用说了,大家对它们都很熟悉。VC 7.0(VC.NET)是它的最新产品。Borland家族也不用说,大家也是耳熟能详。最近它才推出了BCB 6.0。
其它的C/C++编译器如:Intel C/C++大家一看名称就知道是Intel的东西,它和VC6完全兼容,不过要挂在VC6下才能用。Watcom C/C++是早先C/C++编译器四国大战中的一员,原本是很不错的东西,可惜战略不对,现在已不见声息了。倒是以它为基础的一个OpenWatcom现在还在奋战。
VectorC是我近日才发现的一个好东东,它是个纯C的C/C++编译器。IBM的VisualAge for C++原本是IBM想用来淌C++C/C++编译器这片浑水的东西,不过IBM的战略改了,它就被放弃了。DigitalMars C/C++的前身的Symantec C++(它也是C/C++编译器四国大战中的一员),不过现在Symantec不做了,于是它的作者就把它改成了DigitalMars C/C++开放给大家使用。以上这些都是WIN32平台上的东西。