本帖最后由 丶纠结灬 于 2011-11-29 16:57 编辑
五、选择编译器有哪些编译器可用
一般国内学习有以下几款可以用:TC VC GCC LCC-Win32,以下分别介绍。 TC 是Borland公司出品的Turbo C的简称,运行于DOS平台,win下可在控制台下使用。国内常用2.0版作为学习和考试的平台,为于1989年发布的产品,距今大约20年。另有3.0版本也可以使用,3.0比2.0多了C++语言支持。Turbo C 提供了两种编译环境:一种是类似于UNIX环境的命令行,包含一个TCC编译器和一个MAKE实用程序;一种是集成开发环境,由编辑器、编译器、MAKE实用程序和RUN实用程序,还有一个调试器组成。 TC2 具有编译速度快、代码优化效率高等优点,所以在当时深受喜爱。但由于DOS环境已经不是应用主流,所以TC基本不能用来作为软件开发平台。在今天由于TC对系统要求低,操作简便容易上手,他仍然是新手学习C语言的入门编译器之一。传闻Borland已在2002年放开TC的所有权,如果属实,那么使用Tc不再存在任何法律问题。 VC 指的是Microsoft公司的集成开发工具套装VisualStudio中的C/C++语言集成开发环境Visual C++。 目前可以使用的版本有VC6.0,和2005(即VC8)。VC2002/2003是过渡产品,可以不考虑。截至本文最后更新时,2008测试版已发行,2008正式版即将推出。 VC的编辑编译调试都可以在同一个窗口内完成,在Win下兼容性最好,代码效率高,被广泛用作Win下各类程序的开发,可以说是Win平台下的标准开发工具。使用VC意味着和微软同一阵营,文档有微软的官方文档MSDN作为最权威的参考,示例代码数量巨大,学习投资得到有效保护。纯粹学习和开发win本地应用可使用VC6,如果需要进行.net程序开发,就要用2005版。 VC系列的缺点有三:第一是体积庞大,VC6不包含MSDN容量为250M左右,包含则再加1G。VC2005不包含MSDN容量为2.7G,包含再加1.6G。第二是操作复杂学习门槛高,如果要在集成环境编译,必须建立工程和一批附属文件,同时还要熟悉集成环境的使用。第三:VC是有版权的软件。按照法律规定不付费购买是不可以使用VC的,因教学目的可以免费使用,但不能用于商业活动(不过显然国内的兄弟根本不理会这一套)。 VC6有一点要补充说明,VC6是没有中文版的。你所看到的中文版是某些人汉化的结果。虽然简洁明快,但在有些时候会出现莫名其妙的问题,还是直接使用英文版为好。 VC2005分为好几个版本,其中有一套叫做Express版的值得一提。他是微软送出的免费版,专门提供给学生和爱好者使用,功能上有删节,主要是图形界面和大量的工业用库和工具被裁减,而且基本只能在命令行编译。不过对于学习C/C++语言本身是完全足够的。如果有版权顾虑,可以用它。 GCC GNU Compiler Collection 也即是 GNU 编译器家族。 GCC是开源软件,是自由软件的旗舰项目,是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。 GCC 不仅仅能支持 C 语言,它还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言等等等等。另一方面,说到 GCC 对于各种硬件平台的支持,概括起来就是一句话:无所不在。几乎所有有点实际用途的硬件平台,甚至包括有些不那么有实际用途的硬件平台。 根本无需再用什么语言来描述GCC的优点。几乎所有的开源软件和自由软件都是使用GCC编译的。如果要评选世界上编译出程序最多的编译器,除了GCC没有谁能担当这个荣誉。GCC的卓越是不言而喻的,连微软的员工也在使用GCC,学习GCC就是和世界上最优秀的程序员并肩作战。 GCC最早是在Unix平台上开发的,所以在Solaris/Linux/BSD等Unix平台上是默认组件。通过黑客们的努力,GCC已经被移植到Windows平台,而且性能绝无缩水。Win平台下的GCC有两种形式,一种是集成开发环境的,典型的是DEV-CPP,另一种是纯粹编译器和命令行指令集合,以MingW项目为首。 GCC的缺点是对新手不友好,命令行编译方式需要学习才能彻底掌握。 LCC-Win32 这是个小巧的纯C集成开发环境,目前最高版本4.0,和上面三个编译器相比,它有很多明显的优势。 第一她很小巧,全部安装不过30M多,相比VS2005这种庞然大物,简直是迷你的不行。虽小却不缩水,他的确能够编译出Win下的可执行程序,这一点是同样小巧的TC做不到的。可以肯定地说他是Win平台下体积最小的C环境。第二他完全支持C99标准。VS2005基本不能支持C99标准,GCC可以支持C99,但需要适当的配置,而LCC-Win32原生支持,无需任何调节。第三点最关键,它是自由软件,也就是说,他和GCC一样可以免费使用,而且作出的程序也可以自由的销售。缺点是缺少中文文档,无中文版是使用上最大的不便。 还有其它一些编译器,比如Borland的C++编译器BCB系列其中包括免费BCB5命令行版,Intel的Intel CPP Compiler等。在《C++编译器推荐目录》一文中有一个收集的编译器列表,各位可以前往参观。Blog: http://blog.csdn.net/sunwhite 。编译器如此之多,在下就不一一介绍了。 还有些可以配合编译器的开发环境 上面提到的或者是编译器,或者是整合编译器的开发环境。实际上有时我们还用另一种形式,就是用一个开发环境再搭配一个已有的编译器。 首先是业界很有名的Eclipse,这个是由IBM公司开发的一款java的IDE。但由于他设计出色的插件机制,使得在安装了插件之后,他可以通常充当C/C++的IDE。不过,只是在编辑上提供了方便,如果要编译程序的话,就要配合GCC的编译器才行。其实安装插件和编译器之后,Eclipse可以充当C/C++ python perl等很多语言的IDE。 第二个是一个开源的C++IDE,名叫Code::Bblocks。开源、跨平台、代码提示、支持插件、支持代码折叠,配合GCC可以说是完美的IDE,性能与VS2005不相上下。唯一的问题是:自从2005年10月25日发布了1.0rc2版本之后,就没有新的更新了。按官方的说法是在内核部分作重大修改,不过这个时间也太长了些。 第三个应该是算一大类,就是配置好的文本编辑器。Editplus、VIM、Emacs,这三个编辑器非常有名,而他们的可配置型使得他们能够很方便的成为准IDE。尤其是Emacs,当Emacs设置完成的时候,程序员根本不必退出他,就可以完成编程的所有工作。Emacs被戏称为程序员的操作系统,意思是它不仅仅可以用来编程,他可以做一切事,只要配置完全。 他们在哪里 理论上来说,这个问题应该自行通过搜索引擎解决,但我们还是不厌其烦的提供帮助。 TC20可在众多编程入门论坛找到,在VCgood论坛的空间也可。http://www.programfan.com/showdown.asp?id=152 此处也有。 VS6和VS2005建议直接买盘,要找建议通过电驴或BT等工具。 GCC的dev-cpp版本在此,http://www.bloodshed.net/devcpp.html GCC的MingW版本在此 http://www.mingw.org/download.shtml lcc-win32可在 http://www.cs.virginia.edu/~lcc-win32/ 找到,英语很简单,很容易找到下载点,下载之前要填个名字。且本论坛空间也有。 怎么安装他们 除了GCC之外,上面提到的其他编译器都是很容易安装的。他们或者是简单的压缩包,释放即可,或者是标准的windows安装程序,相信大家都很熟悉。GCC的安装别具一格,要特别提一提。 dev-cpp版本的GCC是标准的windows安装程序,但MingW版本不是。MingW版本的GCC继承了UNIX应用程序的风格,简单来说就是小工具的集合。MingW就像一大堆积木组成的,你需要哪个功能,就把哪个模块下载并复制到适当的位置,他就可以工作。 具体操作流程如下:(PS:软件中所提版本以页面上最新为准) 1.下载 到MinGW的主页下载各个组件的最新版本: http://www.mingw.org/download.shtml 以下几个组件是必须的 binutils 其中包括ld,as等编程需要的程序组 gcc-core C语言编译器 mingw32-make Make程序 mingw-runtime 其中包括编译程序的大部分头文件和库文件(不包括Win32API) w32api 这个里面是Win32 API 的头文件和库文件 其他组件可以根据需要下载,反正多装不影响。作者机器上还有如下组件: gcc-g++ C++编译器 gdb 调试器 mingw-insight 调试器的图形化界面 软件包都提供了源代码版(src)和二进制版(bin),下载二进制版本即可。 2.解压 下载后,全部解压缩到同一个目录中,比如 C:\MinGW目录中。如果存在重名现象,通常都是许可证等的文件,可以覆盖掉或者不复制。 因为这些程序包都是使用GNU的压缩工具生成的,所以文件名不是zip,通常是.tar.gz。你可以用WinRAR打开,此处作者推荐著名的工具 7-zip 。 3. 设置环境变量如下:(假设mingw安装在C:\MinGW,且注意GCC的版本,这里假设为3.4.5版) PATH : C:\MinGW\bin; (如果安装过其他c++编译器,务必把你要使用的编译器路径放在最前面) LIBRARY_PATH :C:\MinGW\lib C_INCLUDE_PATH :C:\MinGW\include CPLUS_INCLUDE_PATH:C:\MinGW\include\c++\3.4.5;C:\MinGW\include\c++\3.4.5\mingw32; C:\MinGW\include\c++\3.4.5\backward;C:\MinGW\include
|