我相信作为编程初学者,我们都希望有好用的编程软件。这里"好用"应该至少要满足两点:1.安装简单,2.使用方便。
大神移驾,对工具有特殊偏好跳过,从来不用Windows的止步。本文不做任何"推销活动",诸君自行决断。

前传

记得刚学C++时,用的是老师给的一个VC6.0的安装光盘镜像。后来发现了一个番茄插件(Visual Assist X),用的很爽。随后又发现,每次系统重装(或者还原)后番茄就不能用了,不得不重新装一遍VC6。装了多次VC6.0(那时也经常帮同学装)发现,VC6.0在win7上安装有个问题——在跳出安装进度后,你不能将鼠标点到其他窗口,或者将其他窗口切换到顶层,否则会出现"安装程序无法响应"的现象。当时以为是老师给的那个版本才有的问题,在网上有下了其他版的VC6,发现有同样的问题,每次下载还要担心各种"绿色版""破解版"是不是有毒。

就在那之后不久,我在《数据结构课程设计案例精编》上看到了一篇精彩的序言(可惜没有在网上找的该文,不然,必定转载于此),其中的一节"应当使用什么开发环境?"简要介绍了Visual C++系列,Borland C++ Builder,GNU C++的各自特点,并做了简单对比。

,现在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)

好了,今天的节目就到这里,下次节目再会!

Windows下几款免费C/C++开发工具简介的更多相关文章

  1. Windows下6款实用软件(强烈推荐!)

    Windows下6款实用软件 1.notepads Notepads作为一款编辑器,美观.轻量,功能强大,支持多标签页.Markdown.日常文本编辑.查看,Notepads轻松胜任,如果厌烦了Win ...

  2. windows下使用vs进行Proctocol Buffer开发(C++篇)

    因工作原因接触Proctocol Buffer(protobuf),至于什么是protobuf,为何使用protobuf,我就不赘述了,百度下都是答案. 今天我介绍的是在windows下使用vs进行p ...

  3. Windows下visual studio code搭建golang开发环境

    Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...

  4. 在 Windows 下用 TDM-GCC(MinGW)开发 DLL 涉及到数据同步锁及 DLL 初始化终止化函数的问题

    在 Windows 下用 TDM-GCC(MinGW)开发 DLL 如果要用到数据同步锁,理论上可以采用 Windows API 提供的临界区实现(需要用到的函数有 InitializeCritica ...

  5. windows下运行的linux服务器批量管理工具(带UI界面)

    产生背景: 由于做服务器运维方面的工作,需要一人对近千台LINUX服务器进行统一集中的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINU ...

  6. windows下 安装gitlab及其相关图形管理工具

    windows下 安装gitlab及其相关图形管理工具   在windows下安装git中文版客户端并连接gitlab   下载git Windows客户端 git客户端下载地址:https://gi ...

  7. python 开发工具简介

    一.python 开发工具简介 1.IDLE IDLE是开发python程序的基本IDE(集成开发环境),具备基本的IDE的功能,是非商业Python开发的不错的选择.当安装好python以后,IDL ...

  8. windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境)

    推荐几款一键快速搭建PHP本地运行环境的好工具(含php7.0及apache,nigix,mysql) 首推phpstudy2016和wampServer3.0.6     理由支持php7.0 目前 ...

  9. Windows下用Eclipse搭建C/C++开发环境

    本文假定你已经熟悉Java,Eclipse的安装,并能顺利启动和运行Eclipse.此外因为各软件版本在不断更新,有些地方可能不准确,以最新的.原文资料为准. 距上一次写和调C++程序,已经5.6年了 ...

随机推荐

  1. C#进阶系列——MEF实现设计上的“松耦合”(二)

    前言:前篇 C#进阶系列——MEF实现设计上的“松耦合”(一) 介绍了下MEF的基础用法,让我们对MEF有了一个抽象的认识.当然MEF的用法可能不限于此,比如MEF的目录服务.目录筛选.重组部件等高级 ...

  2. C#、ASP.NET获取当前应用程序的绝对路径,获取程序工作路径 (转帖)

    C#.ASP.NET获取当前应用程序的绝对路径,获取程序工作路径   ============================================ 使用 Application.Start ...

  3. redis主从同步

    本文是在window环境下的主从同步 1.redis是如何实现主从同步的 redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从) ...

  4. XStream简单入门

    简单的讲,XStream 涉及的就五个知识点:详情参考 官网 混叠,注解,转换器,对象流和操作json! 下面就用几个简单的例子来实现上述五个知识点! 基本步骤: 第1步:创建XStream对象. 通 ...

  5. How To Set Up an OpenVPN Server on Ubuntu 14.04

    Prerequisites The only prerequisite is having a Ubuntu 14.04 Droplet established and running. You wi ...

  6. Java研发方向如何准备BAT技术面试答案(上)

    http://blog.csdn.net/q979392157/article/details/52164319 阿里面试题总结 http://blog.csdn.net/q979392157/art ...

  7. 【USACO 3.1】Contact(01子串按出现次数排序)

    题意:给你一个01字符串,将长度为a到b之间(包含a.b)的子串按照出现次数排序.注意输入输出格式 题解:01子串对应一个二进制,为了区别11和011这样的不同子串,我们把长度也记录下来,官方题解是在 ...

  8. 对dom的理解

    js对dom的操作可以理解为: 增.删.改.查 获取对象:查 对象操作:增,修,删 内容操作:innerHTML,innerText等 事件操作:mouse,key 样式操作:id,tag,class ...

  9. DSP, SSP, DMP

    先了解下广告的产业链有哪些人群: 广告主advertisers 显然是指想为自己的品牌或者产品做广告的人,例如宝马.Intel.蒙牛-- 媒体publisers       则是提供广告位置的载体,例 ...

  10. 平衡二叉查找树(AVL)的理解与实现

    AVL树的介绍 平衡二叉树,又称AVL(Adelson-Velskii和Landis)树,是带有平衡条件的二叉查找树.这个平衡条件必须要容易保持,而且它必须保证树的深度是 O(log N).一棵AVL ...