`
xinklabi
  • 浏览: 1560323 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

几款常见C++编译器的比较

阅读更多

另外,就我个人的一点点经验来看,vs 2005中的C++编译器较VC6.0已经有非常大的进步,同是realse下的一个测试程序,VS2005编译得到的程序的效率比VC6有成倍的提高。进一步性能对比有待测试。不过对比较大型的C++项目来说,vs 2005是个不错的选择。


 

关于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++ )
(以上评论都是个人观点)

分享到:
评论

相关推荐

    C++ gcc编译器常见编译错误表

    C++ gcc编译器常见编译错误表,很简易!

    英特尔® C++编译器Cilk语言扩展.pdf

    英特尔® C++编译器Cilk语言扩展 ............................................................................................... 1 1. 介绍...................................................................

    MATLAB 对 MinGW-w64 C/C++ 编译器的支持:安装适用于 Windows 的 MinGW-w64 C/C++ 编译器-matlab开发

    这个 GCC 编译器对于需要 C 或 C++ 编译器的其他 MathWorks 产品也很有帮助。 R2015b、R2016a、R2016b 和 R2017a 的说明: 完成错误报告中的解决方法说明,然后按照以下说明操作,适用于 R2017b 及更高版本。 ...

    devcpp5.11编译器与c&c++常见的chm格式文档

    内容概要:devcpp5.11编译器与api开发文档,通过devcpp你可以对一些简单的c、c++小demo的练习进行快速尝试,可以调节代码的字体、大小,查找bug时复制问题即可寻找,是一款空间小、功能强大的编辑器。其除了被个人...

    C++常见面试题,超有用的

    2. CONST 常见题目: a. const 与 #define有什么不同 答案: 1. const 常量有数据类型,而宏没有数据类型。编译器可以对const 常量进行类型检查,而对宏只进行字符替换没有类型检查。 2. 有些编译器可以对const常量...

    Keil C编译器常见警告与错误信息的解决方法.pdf

    Keil C 编译器常见警告与错误信息的解决方法Keil C 编译器常见警告与错误信息的解决方法Keil C 编译器常见警告与错误信息的解决方法

    常见的C++语法.rar

    C++(c plus plus)是一种计算机... 甚至用于其他编程语言的库和编译器也使用C++编写。 C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力 本资源帮助你了解和学习C++

    C/C++ 常见误区

    不要用""代替来包含系统头文件,虽然有些编译器允许你这样做,但它不符合C/C++标准。 错误的示例:#include "stdio.h",#include "iostream"。[antigloss注:<> 用于包含标准头文件和系统头文件,"" 用于包含自定义...

    面向C++11的轻量级同步事件框架

    唯一的要求是支持C++11和访问标准C++库的编译器。它的灵感来自于几个公共事件API的设计,比如Google的Web Toolkit和流行的游戏修改框架中的API。 文件可以按原样放置到任何现有项目中,无需进行任何修改,也可以...

    c++ primer中文版【第三版】 PDF电子书

    Josee Lajoie 是IBM加拿大实验室的C/C++编译器开发组的一名成员,也是ANSI/ISO C++标准委员会的核心语言工作组的主席。Josee是《C++ Report》杂志的专栏作家,目前正在滑铁卢大学的计算机图形实验室攻读硕士学位。 ...

    Accelerated C++ PDF 中英文版

    感谢他们的开发者和所有开发其他C++编译器的人,是他们使C++变成现实。最后,感谢Addison-Wesley的工作人员,他们引领了这一版的整个出版过程:Debbie Lafferty——我们最初的编辑,是他提出出版本书的新版,他从...

    Accelerated C++源代码

    感谢他们的开发者和所有开发其他C++编译器的人,是他们使C++变成现实。最后,感谢Addison-Wesley的工作人员,他们引领了这一版的整个出版过程:Debbie Lafferty——我们最初的编辑,是他提出出版本书的新版,他从...

    ACT硬件描述语言和核心工具 C++ 异步电路/编译器工具

    (ACT = 异步电路/编译器工具) 创建一个您希望安装工具的目录。类 Unix 机器上的示例常见位置包括 /usr/local/cad、/opt/cad、/opt/async。您也可以将它们安装在任何其他目录中(例如 $HOME/async) 将环境变量 ACT...

    CodeBlock教程

    Code::Blocks支持十几种常见的编译器,安装后占用较少的硬盘空间,个性化特性十分丰 富,功能十分强大,而且易学易用。我们这里介绍的Code::Blocks集成了C/C++编辑器、编译器、和调试 器于一体,使用它可以很方便的...

    C语言编译器

    常见的IDE有Microsoft Visual Studio,Dev-C++,C++Builder,Emacs + GCC,Eclipse+CDT。IDE环境,集编辑、编译、调试于一身,还有很多相应的拓展工具,这是为了开发人员使用上能够很方便,以至于他们把更多的精力...

    C与C++程序设计学习与实验系统 2011.2

    Visual C++6.0中英文编译错误信息同步显示功能(并配有60多种同步的语法错误程序实例、修改方法等)、 Turbo C2.0 中英文编译错误信息同步显示功能、Turbo C++3.0常见编译错误信息、C语言专业词汇的中英文对照、2004...

    c++理论方面的题很常见的理论题

    很常见的理论题 2 头文件的作用是什么? 一、通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必...

    C/C++程序设计学习与实验系统 V2008.13.part1

    软件集成了高校 C/C++语言教学中使用最多的三种编译器 Visual C++ 6.0 、Turbo C++3.0和Turbo C 2.0 ,给高校 C/C++的实验教学提供了简单易用的软件实验环境(软件没有使用日期限制,可以无限期使用)。与软件配套的...

    c/c++程序设计学习与实验系统

    支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据C/C++ 初学者的特点,量身定制的一个简单易用的 C/C++程序设计学习与实验软件(支持TC2/TC3、VC6三种编译器,没有使用日期限制,重新集成在VISTA、WINDOWS ...

    现代C++程序设计

    , 很多案例既给出了源代码,也列举了常见错误,以及编译器产生的出错信息。, 各种技巧方法和注意事项被总结成易于查阅的表格。, 课后练习类型丰富,循序渐进,难度和规模适中。, 附录部分内容独特,信息丰富。, 本书...

Global site tag (gtag.js) - Google Analytics