2007年7月27日星期五

【转】学习C/C++ 使用什么编译器?

不知不觉,学习编程已经有一段时间了,回想一下,走了不少弯路,也许现在走的仍然是弯路,编程是个非常注重实践的技术,因此不管是谁,想要学好,上机练习是必须走的路.

有道是“磨刀不误砍柴工”, 选择一个合适的学习环境,会事半功倍.

虽然,程序设计这东西,是没有捷径可走的,但是少走一些可以轻易避开的弯路,还是会有所好处的.

以一个菜鸟的眼光,我认为,选择编译器主要看编译器的特点和你的需求,而不是追赶潮流.

现在对编译器的定位: 学习C/C++的语法和标准库

作为一个新手,我的需求是

1 功能不要太多,免的我看的眼花缭乱,鼠标到处乱点

2 尽可能的支持当前C/C++标准

3 可以很方便的编辑代码

4 调试程序要简单方便

5 占用尽量少的内存和硬盘以及CPU

6 跟我的系统兼容性要好

上面的条件似乎挺合情合理的,我不是很有把握.你说呢?

细细的想了想, 常见的编译器先作个列表出来,并且大致介绍一下


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++ Builder

Borland是个相当牛的公司, C++Builder可以说是C++ RAD开发的最佳工具,

没有人会质疑它的RAD能力,从UI到底层,它都有着赵不错的表现,不过体积稍微有点大

虽然安装的时候可以定制,装的小一些


GCC(g++)

各种常见平台下面都有GCC的影子, Windows,Linux,Unix,BSD,Solaris.........

这个工具强大到让人汗颜,不过新手不容易上手.

对标准的支持是目前最好的



LCC for win32

小巧的工具,对标准支持也不错,我觉得唯一的不足之处就是调试的时候,添加的watch

列表里 i和j 太像了,简直分不清


VC++6.0

Windows时代经典工具之一,对C++标准支持是相当的不好,很多bug,不过都修复了,

需要安装补丁,菜单一大堆,功能也是一大堆


VC2005

.NET时代的产品, 对C++的标准支持非常好

调试起来也很方便,不过太大了,还要装个.net frameworks才能跑


DevC++

严谨的说,这并不是一个编译起,而是个外壳,在你和编译器之间协调,交互.

它的后台编译器是GCC,所以对标准支持也不错.编辑代码也很方便,调试也很方便

体积也不大,10M左右.界面很简洁,官方就有中文版.支持很多扩展,比如Insight_sought,

OpenSSL, MySQL数据库接口..............

50多个可以使用的扩展, 默认不带那些东西,如果你不感兴趣,就当作不知道



MinGW Studio

这个跟上面一个差不多,也是外壳,GCC做后台编译器,只是需要建立工程,新手可能不会

但是最培养软件开发的意识是不错的


Rhide

TC一样的界面+GCC的编译器



C-free

也是一个外壳,只不过做的相对逊色了一些,比如要求系统支持8.3文件名格式

还要注册,比较麻烦,虽然不贵


TC for win
win tc
windows 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的时候, 请三思而后行.

ps0: 上面的环境我都用过一段时间, 有所大致的了解

ps1: 如果没有怎么用过那些工具的, 没有发言权

ps3: 欢迎辩论 有疏漏之处 还望指正

ps4: 看过的请留言, 无论是支持还是批评 甚至漫骂 我都会保留

没有评论: