C编译器的选择为初学者.doc_第1页
C编译器的选择为初学者.doc_第2页
C编译器的选择为初学者.doc_第3页
C编译器的选择为初学者.doc_第4页
C编译器的选择为初学者.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+编译器推荐目录链接:/bs/compilers.html作者:Bjarne Stroustrup译者:陈希日期:2004年4月13日经常有人向我(Bjarne Stroustrup)询问,能否推荐一个C+编译器。但是,我不能做这样的推荐,因为这样非常容易卷入一场商业战争。同样,我也不知道每一种C+编译器,因为它们有太多的相似的地方。我使用六种C+编译器来完成基本需要,但是仅仅从表面上来看它们都是参差不齐的。我建议人们使用和标准严格一致的编译器。如果你这样做,就能够避免编译器不和ISO标准近似的情况,以及不能使用标准库的情况。最近一些来自主要C+厂商发行的编译器都是这样做的。如果你是一个新手,不知道如何查看编译器的构造,那么使用下面的代码:#include#includeusing namespace std;int main()string s;cout s;cout Hello, s n;return 0; / this return statement isnt necessary如果编译器不能处理这段简单的程序,那么它就不能作为学习标准C+语言的候选编译器。这里有一篇很长的文章论证编译器的一致性,和的编译器状态文章。一致性是编译器质量的一部分(产生代码的质量,错误消息,编译速度,工具集成,支持程度,向后兼容,以及其它重要的方面),但却是很重要的一部分。编译器厂商对语言的扩充和非标准特性的使用限制了程序的简捷性,并且可以防止你选择一个新的编译器厂商。目前的编译器都嵌入到了软件开发工具和开发库的框架里边。这些框架、环境、库都非常有用,但是要记住一点是,对这些工具的使用将会使你局限在单一的卖主上,局限在重要的执行性能上。当在网上寻找C+编译器时,你可以发现隐藏在几种产品名称后的信息。实际上,使用,我非常幸运的发现了C+编译器的信息,这比起从厂商目录中寻找要好的多。这里,我选择了一个C+编译器的名称列表,不考虑它们的市场情况。可以免费下载的编译器(在试图进行商业使用时,请检查它的许可情况):Apple C+ - 可以从开发者工具光盘中的OS X中获得Bloodshed Dev-C+ - 基于GCC的(Mingw)IDE环境Borland C+Cygwin (GNU C+) MINGW - Minimalist GNU for Windows. Windows版本的另外一个GCC编译器,包含了免费的w32api(非GPL许可)DJ Delories C+ development system for DOS/Windows (GNU C+) GNU CC source Intel C+ for linux 需要付费的编译器(有些允许有评估期的免费下载):Borland C+ Comeau C+ - 支持多平台Compaq C+ Digital Mars C+ Edison Design Group C+ Front End - 被许多C+编译器厂商采用Green Hills C+ - 支持嵌入式系统平台HP C+ IBM C+ Intel C+ - 支持Windows, Linux, 和其他嵌入式系统Interstron C+ Metrowerks C+ - 支持多平台,可从Metrowerks主页上查询Mentor Graphics/Microtec Research C+ - 支持嵌入式系统平台Microsoft C+ Paradigm C+ - 支持x86嵌入式系统The Portland Group C+ - 针对奔腾CPU优化SGI C+ - 优化的编译器Sun C+ WindRivers Diab C+ - 用于很多嵌入式系统对于我要保持这个列表的完整和最新是不可能的。C+世界太大了,太多的事情发生。对于那些遗漏的厂商,我感到非常抱歉,因为我只知道这些。如果你有一个链接,并且认为应该放在这个列表中,那么请发送电子邮件给我:。此外,我只罗列了编译器,我不会评价它们。同样,他们也不是那种对任何人都是最好的编译器,所以人们需要对它们进行更多的比较。其它C+编译器,请看the open directory project。更多C+资源,请看my C+ page。Trackback: /TrackBack.aspx?PostId=1066342* 不知不觉,学习编程已经有一段时间了,回想一下,走了不少弯路,也许现在走的仍然是弯路,编程是个非常注重实践的技术,因此不管是谁,想要学好,上机练习是必须走的路. 有道是“磨刀不误砍柴工”, 选择一个合适的学习环境,会事半功倍. 虽然,程序设计这东西,是没有捷径可走的,但是少走一些可以轻易避开的弯路,还是会有所好处的.以一个菜鸟的眼光,我认为,选择编译器主要看编译器的特点和你的需求,而不是追赶潮流. 现在对编译器的定位: 学习C/C+的语法和标准库作为一个新手,我的需求是1 功能不要太多,免的我看的眼花缭乱,鼠标到处乱点2 尽可能的支持当前C/C+标准3 可以很方便的编辑代码4 调试程序要简单方便5 占用尽量少的内存和硬盘以及CPU6 跟我的系统兼容性要好上面的条件似乎挺合情合理的,我不是很有把握.你说呢?细细的想了想, 常见的编译器先作个列表出来,并且大致介绍一下Turbo C如果我说它是世界上最经典的C语言编译器之一,有人抗议吗?最古老的C语言编译器之一,1989年诞生的, 有17年历史了,对当前的C语言标准(C99)自然是不能很好支持的了,总不能要求它未卜先知,支持10年后的标注吧TC 是DOS下经典的工具之一, 正因为是DOS下的产物,16位时代的东西,所以现在在高版本的Windows(win2000, winXP 以及更新的版本) 下面,兼容性不是很好,很多人在运行这个程序的时候, NTVDM.exe 会占用100%的CPU,当运行TC编写的图形界面的软件的时候甚至会有死机的现象.由于生在DOS时代,编辑代码在现在看来自然不怎么方便,它既不支持语法的高亮度显示,又不支持鼠标的操作.优点是占用硬盘空间很小关于TC的更多资料请去 Borland公司的博物馆 参观Borland称之为 Antique Software (史前软件)Turbo C+又一个经典的作品,跟Turbo C相比,进步了很多,比如可以鼠标操作菜单了,但是毕竟还是16位时代的东西,跟现在32位的是没法比的.很遗憾, Turbo C+ 不能编译任何一个现代 C+ Style的C+源代码.光 using namespace xxx 就把它枪毙了, C+的标准库 STL 它一个都不支持,毕竟它也不能未卜先知去支持多年后的标准.Borland C+这是Borland 公司的又一个系列的杰作,处在过渡时间的产品(16bit向32bit过渡)支持DOS下的编程,也支持Windows下的,OWL更是名噪一时,是个不错的工具,只不过现在也很老了,很老很老了, 对C+标准的支持,高版本的还可以,比如 Borland C+ 5.5,编辑代码还算方便.体积也不算很大C+ BuilderBorland是个相当牛的公司, C+Builder可以说是C+ RAD开发的最佳工具,没有人会质疑它的RAD能力,从UI到底层,它都有着赵不错的表现,不过体积稍微有点大虽然安装的时候可以定制,装的小一些GCC(g+)各种常见平台下面都有GCC的影子, Windows,Linux,Unix,BSD,Solaris.这个工具强大到让人汗颜,不过新手不容易上手.对标准的支持是目前最好的LCC for win32小巧的工具,对标准支持也不错,我觉得唯一的不足之处就是调试的时候,添加的watch列表里 i和j 太像了,简直分不清VC+6.0Windows时代经典工具之一,对C+标准支持是相当的不好,很多bug,不过都修复了,需要安装补丁,菜单一大堆,功能也是一大堆VC2005.NET时代的产品, 对C+的标准支持非常好调试起来也很方便,不过太大了,还要装个.net frameworks才能跑DevC+严谨的说,这并不是一个编译起,而是个外壳,在你和编译器之间协调,交互.它的后台编译器是GCC,所以对标准支持也不错.编辑代码也很方便,调试也很方便体积也不大,10M左右.界面很简洁,官方就有中文版.支持很多扩展,比如Insight_sought,OpenSSL, MySQL数据库接口.50多个可以使用的扩展, 默认不带那些东西,如果你不感兴趣,就当作不知道MinGW Studio这个跟上面一个差不多,也是外壳,GCC做后台编译器,只是需要建立工程,新手可能不会但是最培养软件开发的意识是不错的RhideTC一样的界面+GCC的编译器C-free也是一个外壳,只不过做的相对逊色了一些,比如要求系统支持8.3文件名格式还要注册,比较麻烦,虽然不贵TC for winwin tcwindows tc.这个系列的本质全部都是TC, 外观上看似windows的, 其实跟上面的一样, 只是个外壳一个皮而已. 通过简单的介绍, 对开发环境应当有一定的印象了.如果你的要求跟上面6条差不多,相信你已经作出选择了DevC+和MinGWStudio除了他们还能选谁呢?这两个工具在网上很多下载很容易 感兴趣就找下来试试改天我写个简单的使用教程, 新手只要半个小时就可以使用自如了如果非要排除他们选择其它的, 那么VC2005和C+ Builder 也不错总之,千万不要选择Turbo C, TC+, tc for windows, win-tc 等因为太古老了,太不适合学习了, 他们不是基础性的东西,如果是基础性的,就算是1000年前的, 也是需要学的.常见的观点使用Turbo C可以接触底层的编程,不会埋葬在一些封装里使用别的工具也可以进行底层的编程, 人家只不过提供了多一种选择, 你可以不用那些东西自己从头实现TC简单, 适合初学者TC是简单, 但是DevC+也很简单,跟TC相比,唯一复杂一些的地方就是保存代码的时候,需要指定文件名, 不像TC,有noname.c我不信你就不需要保存两个或者两个以上的程序难道你只写一次?TC可以进行图形编程,别的不行(graphics.h)上面提到的工具,没有不支持图形开发的, 不要忘记, Windows, ie浏览器, Word 等等都是C/C+开发出来的(有部分是VB开发的).TC的图形库接口 graphics.h , 不是C/C+标准里的, 标准里是没有图形接口的而支持这个 graphics.h 的编译器, 就TC一个, 超过50种的C/C+编译器,就TC系列支持这个.匆匆写下此文,希望有人因此少走一点弯路那些思想保守, 迂腐守旧的人们, 推荐别人使用TC的时候, 请三思而后行.*了解的C/C+编译器如下: GCC家族有 Cygwin Mingw32 DJGPP Dev-C+(Mingw32) 还有正宗的GNU GCC .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-252002-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 (较慢) 当然,我所做的测试比较片面。不过在很大程度上已能反映其大概状况。*C/C+的编译器之选- - 在我们开始学习C/C+时,建议采用一些小巧的编译器,这些编译器大都免费。简要推荐如下:1.BorlandC+Compiler5.5“BorlandC/C+5.5.1forWin32”是Borland公司在2000年免费放出的一个C/C+编译器,其功能完整、包含多种SDK,且容量极小,安装版本大小仅8MB。Borland公司的旗舰级产品“C+Builder5”内置的就是这一编译器。 2.Dev-C+5.0是Bloodshed软件公司于2002年9月26日推出的一个基于MingW(即GNUC/C+的Win32版)的微型C/C+开发工具。由于使用了GNUC/C+内核,所以在做软件移植时非常的方便,你可以方便的将一个程序移植到任意一个有GNUC/C+的平台。而且由于基于GNUC/C+的开放源代码软件很多,所以使用Dev-C+是一个很好的选择。但由于它的调试不便,帮助不全等问题,也使得它在推广上举步艰难,远比不上BorlandC/C+、OpenWatcomC/C+这两个同是免费的编译器。3.DJGPPDJGPP是基于32位保护模式的语言编译器,是一个GNU软件,换句话说,你可以得到它整个系统的源代码,且可以任意修改。它的集成环境RHIDE是仿BorlandC+3.1的,十分好用,这比WatcomC要强多了。4.LCC-Win32运行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论