我相信作为编程初学者,我们都希望有好用的编程软件。这里"好用"应该至少要满足两点:1.安装简单,2.使用方便。
大神移驾,对工具有特殊偏好跳过,从来不用Windows的止步。本文不做任何"推销活动",诸君自行决断。
前传
记得刚学C++时,用的是老师给的一个VC6.0的安装光盘镜像。后来发现了一个番茄插件(Visual Assist X),用的很爽。随后又发现,每次系统重装(或者还原)后番茄就不能用了,不得不重新装一遍VC6。装了多次VC6.0(那时也经常帮同学装)发现,VC6.0在win7上安装有个问题——在跳出安装进度后,你不能将鼠标点到其他窗口,或者将其他窗口切换到顶层,否则会出现"安装程序无法响应"的现象。当时以为是老师给的那个版本才有的问题,在网上有下了其他版的VC6,发现有同样的问题,每次下载还要担心各种"绿色版""破解版"是不是有毒。
就在那之后不久,我在《数据结构课程设计案例精编》上看到了一篇精彩的序言(可惜没有在网上找的该文,不然,必定转载于此),其中的一节"应当使用什么开发环境?"简要介绍了Visual C++系列,Borland C++ Builder,GNU C++的各自特点,并做了简单对比。
不过,作者写那本书也有些年头了,里面说到的Visual C++ 最新版是2005,现在2013都已经发布了。该书在介绍基于GNU C++编译器时,提到的Dec-C++还是那个停了很久的4.9.9.2,现在Dev-C++最新版也不再是从Blood软件网站www.bloodshed.net上下载了,在wikipedia上能看到对它的介绍有"从 2005 年 2 月 22 日开始至2011年6月, Dev-C++ 的官方网站一直没有再发出新消息或是释放新版本,说明Dev-C++的开发已经进入了迟滞状态。2006 年,Dev-C++主要开发者 Colin Laplace 曾经对此作出了解释:"因忙于现实生活的事务,没有时间继续 Dev-C++ 的开发。""不过现在的Orwell Dev-C++已经跟上了:https://sourceforge.net/projects/orwelldevcpp/
该书介绍的MinGW Developer Studio也有类似的境遇:"Unfortunately MinGW Developer Studio has not been under development since 2005 and the official website has been down since 2008. The MinGW Compiler shipped with the IDE has become really outdated and working download links for MinGW Developer Studio are hard to find."
所以,虽然作者的文笔不凡,但是现在看来也没有转载的必要了。
Visual C++ 2008 Express
好了,废话一堆,开始正题吧。现在的C/C++编译器基本上是Microsoft(以下简称MS),Intel,GNU,LLVM这几大门派,其中MS,Intel是收费的。在Windows上当然是微软的一家独大了,Intel,LLVM(Clang)都可以以插件的形式安装到Visual Studio中。微软Visual Studio 现在分好几个版本,有Express,Professional,Premium,Ultimate。其中Express可以从官网免费下载、使用,对应个人学习,Express版已经足够;Professional版现在对学生老师也是也可以免费下载,只需要通过edu域名的邮箱在DreamSpark上注册个用户就可以了。
我的机器上安装了VC2008 Express,启动速度要比Visual Studio 快很多,下载链接:http://msdn.microsoft.com/zh-CN/express
就调试C++代码来说,VC是最好用的,因为它的调试功能针对STL做了优化,比如:
好处:文本编辑、编译、调试 一条龙服务。
缺点:要"创建项目->添加文件…"(也不算是缺点)
重装系统后就不能用了,要重新安装(对于经常折腾自己电脑的人来说是缺点:-D)
GCC based IDE
也可以选择几种免费的IDE方案:
Eclipse+CDT+GCC
Eclipse本身是java软件,所以你要使用Eclipse必须先安装JRE或者JDK,Eclipse和JRE/JDK都可以从它们的官网免费下载(没有安装的同学自行百度)。Eclipse官网有多种版本的Eclipse,不过它们并无太大区别,只是安装的插件不同罢了。如果只用它写C/C++代码,可以下载C/C++版(打包了CDT)。
CDT((C/C++ Development Tooling)
如果你下载的不是C/C++版的Eclipse,则要自己下载CDT。可以用Eclipse的菜单安装:Help->Install new software。也可以到官网下载,再解压到Eclipse根目录。
CDT安装后,Eclipse的file->new就能创建C++项目了。不过CDT自动扫描PATH时必须保证你的%TDM-GCC%\bin下有make程序,你可以把TDM-GCC\bin下的mingw32-make.exe复制一份为make.exe,CDT应该就能自动扫描出对应的include目录了。
同样调试刚才那段VC2008下的代码:
可以看到,Eclipse的调试功能并没有特殊对待vector。
优点:
跨平台,Eclipse可以在各种系统上运行(只要有JRE)
通用,Eclipse还可以开发java,python等等语言
缺点:
启动慢,Eclipse是"插件式"的
有点卡,Java应用,当然没有原生应用跑的顺
Dev-C++
现在Dev-C++已经不属于当年的Blood软件了,你可以到sourceforge上免费下载:http://sourceforge.net/projects/orwelldevcpp/
默认是会连同TDM-GCC一同下载的。
再来调试一下:
很明显,比Eclipse还要弱,只能看到基本的一些信息,不能展开。
优点:
轻量,一共40+M(包括TDM-GCC在内)
启动快,软件小肯定启动得快了
缺点:
调试功能相对较弱(不过没太大影响)
Code::Blocks
Code::Blocks是The open source, cross platform, free C, C++ and Fortran IDE.
尽情下载:http://www.codeblocks.org/downloads
也来调试:
很明显Code::Blocks的Watch窗口也对STL容器做了优化。
优点:
跨平台,打的就是Cross Platform旗号
代码提示功能较强,"谁用谁知道"
缺点:
暂时没发现(我没怎么用过)
DIY--Do It Yourself
我更多的时候会写一些练习性的代码,他们通常只有一个文件(或是很少的几个)。在各种IDE下编译这种代码前,你都要先"创建项目",在一步步添加源码文件,这总让我不厌其烦;尤其是在一个源文件就能搞定的时候。
于是,我选择了更轻量的方案——Tdm-gcc & Notepad++
TDM-GCC and Notepad++
更多的时候会我会用notepad++来写一些练习性的代码,这种代码通常只有一个源文件,要用VC2008Express的话还是要"新建->项目->xxx",很麻烦。这时更适合用TDM-GCC & Notepad++:
TDM-GCC是GCC的windows版,官网http://tdm-gcc.tdragon.net/ ,现在的版本是GCC 4.8.1,GCC的最大好处是跨平台(当然还有免费:-D)。默认情况下,安装好之后,PATH下能够找到%TDM-GCC%\bin,也就是可以在cmd里使用gcc,g++命令。(安装TDM-GCC过程中有一个默认会选中的"将TDM-GCC的bin目录加到PATH变量"的复选框,不要取消它。如果取消了也没关系,可以右击"计算机"->"属性"->"高级系统设置"->"环境变量",找到PATH,双击,再最后加上%TDM-GCC%\bin,%TDM-GCC%是你的实际安装目录)
Notepad++(以下简称npp)是一款开源的文本编辑器(也是免费的:-D),官网http://notepad-plus-plus.org/ ,支持语法高亮,单词函数自动完成等功能,值得推荐。
另外npp支持快捷键设置,我设置了Ctrl+Shift+C为"open current dir cmd",这样我在写好并保存一个源文件后,就可以很方便打开控制台(Console)窗口并用gcc编译运行了。不用再IDE上创建Project,再添加源文件,再点编译运行神马的。
上图:
优点:轻量(下载快),Notepad++不到6M,TDM-GCC 64位的也不到40M
方便,打开就能写代码(不必新建xxx,再建xxx)
重装后还能用,(安装的时候有个选项,"Don\'t use %AppData%"建议勾选,勾选后你的设置会保存到安装目录)当然,前提是你不要安装到C盘
设置灵活,插件众多
(这一方案也是我的最爱)
缺点:命令行编译(也不能算缺点)
Vim & gcc
据说vim是一款"神的编辑器",我抱着试试看的心态装了一个:
个人认为vim的好处是——可以在只有命令行环境的情况下工作,比如ubuntu server。
当然,还有跨平台!
还有就是配置和插件。
我也下了emacs,没怎么用,想用的同学可以参考http://wangheng.org/html/emacs.html
由于用过一段时间的vim,一时不能习惯emacs那么多快捷键,不过emacs的配置lisp语言,要比vim的配置脚本强大很多
npp也好,vim也罢,不管怎么说,它们只是编辑器
其他免费软件
当年的Borland C++ Builder,也改旗易帜了。他们的IDE产品是收费的,但编译器(console only)可以免费下载(freecommandLinetools.exe)
好了,今天的节目就到这里,下次节目再会!