Windows下几款免费C/C++开发工具简介
我相信作为编程初学者,我们都希望有好用的编程软件。这里"好用"应该至少要满足两点: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++开发工具简介的更多相关文章
- Windows下6款实用软件(强烈推荐!)
Windows下6款实用软件 1.notepads Notepads作为一款编辑器,美观.轻量,功能强大,支持多标签页.Markdown.日常文本编辑.查看,Notepads轻松胜任,如果厌烦了Win ...
- windows下使用vs进行Proctocol Buffer开发(C++篇)
因工作原因接触Proctocol Buffer(protobuf),至于什么是protobuf,为何使用protobuf,我就不赘述了,百度下都是答案. 今天我介绍的是在windows下使用vs进行p ...
- Windows下visual studio code搭建golang开发环境
Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...
- 在 Windows 下用 TDM-GCC(MinGW)开发 DLL 涉及到数据同步锁及 DLL 初始化终止化函数的问题
在 Windows 下用 TDM-GCC(MinGW)开发 DLL 如果要用到数据同步锁,理论上可以采用 Windows API 提供的临界区实现(需要用到的函数有 InitializeCritica ...
- windows下运行的linux服务器批量管理工具(带UI界面)
产生背景: 由于做服务器运维方面的工作,需要一人对近千台LINUX服务器进行统一集中的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINU ...
- windows下 安装gitlab及其相关图形管理工具
windows下 安装gitlab及其相关图形管理工具 在windows下安装git中文版客户端并连接gitlab 下载git Windows客户端 git客户端下载地址:https://gi ...
- python 开发工具简介
一.python 开发工具简介 1.IDLE IDLE是开发python程序的基本IDE(集成开发环境),具备基本的IDE的功能,是非商业Python开发的不错的选择.当安装好python以后,IDL ...
- windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境)
推荐几款一键快速搭建PHP本地运行环境的好工具(含php7.0及apache,nigix,mysql) 首推phpstudy2016和wampServer3.0.6 理由支持php7.0 目前 ...
- Windows下用Eclipse搭建C/C++开发环境
本文假定你已经熟悉Java,Eclipse的安装,并能顺利启动和运行Eclipse.此外因为各软件版本在不断更新,有些地方可能不准确,以最新的.原文资料为准. 距上一次写和调C++程序,已经5.6年了 ...
随机推荐
- ReactNative新手学习之路05 使用夜神模拟器调试ReactNative
1.首先确保adb环境添加到path环境 2.安装好夜神模拟器 3.运行模拟器 4.adb connect 127.0.0.1:62001 5.摇一摇设置IP和端口 如127.168. ...
- jquery修改带!important的css样式
由于需求的需要,今天在用jquery修改一个弹出框的样式的时候,由于有一个按钮有padding-left:12px;导致内间距空出来的这一块颜色用普通的方式无法改变. 普通的jquery修改css的方 ...
- SqlMetal.exe ORM代码生成
作甚? 先说说这个工具是干啥的,我们所做的程序,或多或少需要存储一些数据到数据库,当然直接使用Sql语句也可以,甚至有些情况下就是要使用sql语句,但对于一些基本的增删改查,对每张表都要写查询语句就显 ...
- 关于StrangeIOC框架
在Unity上进行开发,请先看对其开发模式应用的讨论: http://www.reddit.com/r/Unity3D/comments/1nb06h/unity_design_patterns_an ...
- Java Collection
在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便.这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结 ...
- 【Beta版本】七天冲刺——日志集合贴
No Bug 031402401鲍亮 031402402曹鑫杰 031402403常松 031402412林淋 031402418汪培侨 031402426许秋鑫 Day1 Day2 Day3 Day ...
- ical4j 实现ICS文件的生成和解析
iCalendar 简介 iCalendar,简称"iCal",是"日历数据交换"的标准(RFC 2445),该标准提供了一种公共的数据格式用于存储关于日历方面 ...
- extracting fasta records from a multi-fasta file based on a list using awk
for i in $(cat gene_list) do awk -v RS=">" '($1==a){print ">"$0}' a=$i inp ...
- RAM、DRAM、SD卡
catalogue . ROM.RAM.DRAM.SRAM和FLASH的区别 . 内存工作原理 . DRAM基本结构与原理 . SD卡基本结构与原理 1. ROM.RAM.DRAM.SRAM和FLAS ...
- 11月14日用AJAX、PHP、SESSION做购物车
购物车网页代码 1.登录界面login.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...