回 帖 发 新 帖 刷新版面

主题:[原创]免费的C/C++集成编译环境(IDE)

[color=red][b]postfix:[/b][/color]

    更全的列表以及下载链接见:

    [url=http://www.compilers.net/Dir/Free/Compilers/CCpp.htm]http://www.compilers.net/Dir/Free/Compilers/CCpp.htm[/url]

[size=5]题头:[/size]

  献给为编译环境而烦恼的同志们。


[size=5]正片开始:[/size]

[b]Dev-C++[/b]
本软件就不用说了,这是pfan论坛上的首选IDE环境;他默认安装minGW作为编译器——就是windows化了的GCC编译器。版本应该是3.4;

由于其编辑器使用简单,而内核gcc3.4对c99和c++2003的支持度都比较高,所以,这个软件比较适合标准C/C++初学者!除了支持外部库,Dev-C++还支持自己的开发包,你可以从升级“包”这个功能上获得许多有用的东西;

你可以在http://www.bloodshed.net获得它的下载。

[b]WxDev-C++[/b]

不知道是英雄落幕还是怎么的?Dev-C++已经停止更新了!最新的版本应该是4.9.9.2——不更新,这个就计较郁闷了!不过,另一波人把这个项目接了过来,在Dev-C++的基础上添加了很多的东西,比如RAD工具(就是像VB那样,能快速通过拖拉就可以做win32程序界面的工具),还修改了前作Dev-C++的一些bug。

还有就是它兼容vc6、vc7、vc8的工程设置——就是说,vc6、vc7、vc8的工程可以照搬到WxDev-C++下来使用!

当然,最大的好消息,就是,这么好的工具竟然也是免费的!

下载:http://wxdsgn.sourceforge.net/


[b]Code::Blocks[/b]

这个有着怪名字的东西,是个比较新的免费IDE,当前是面向C/C++使用而开发的工具;注意,这个是开源跨平台的哦!这个软件是用插件式构架的,那么这个软件就设定成可以非常的个性化!

由于它支持多编译器,所以,它没有默认绑定编译器;由于它支持的编译器比较多,我就挑点讲:
minGW的GCC编译器、vc7还有vc8以及Borland C++ 5.5;

下载:http://www.codeblocks.org/


[b]Ultimate++[/b]

这个软件也式跨平台的——就我看来,其最大的特点,就是有自己的GUI库!

下载:http://www.ultimatepp.org/index.html


[b]Eclipse[/b]

这个巨大的东西,也是跨平台的——不过这个东西太大了点,我也就不说了——不符合简单易学的规则。

下载:http://www.eclipse.org/


[b]VC[/b]

最后,哈哈,因为个人的原因,我把Microsoft公司的VC产品放在最后。VC6、VC7、VC8者是当前还活跃的3个ms的C/C++编译环境——不过可惜的是,他们都不是免费的!
在这里提VC的原因呢,有两点:

1. 虽然他们不免费,不过,在中国来说——等于免费,原因吗?大家心知肚明,我就不说了!

2. MS不提供大餐,甜点还是有的:
Microsoft Visual C++ Toolkit 2003
这个编译工具包——免费!
然后Microsoft Visual C++ 2005也有一个免费版!当然不是全功能的,不过对于初学者,也是够用了!



[size=5]尾声:[/size]

对于NB的人来说,有没有IDE都一样!IDE只是快速开发的工具而已!

这里,我要说说为什么把ms公司的VC系列放最后的原因:竞争才有进步,而ms的公司的策略,就是只让自己独活;像VC系列IDE这样大包干的做法,我是认为不正确的——一个把更多的选择权留给使用者。

回复列表 (共40个回复)

11 楼

[quote]大家似乎对TC不满,对IDE情有独钟?[/quote]

前者对!后者不对!
1. TC也是IDE。
2. 我其实鼓励只用编辑器加命令行——但是这个对初学者显然不合适。我介绍其他的集成编译环境,就是让他们“见异思迁”。

[quote]我认为教学就是不用TC,也该用命令行的编译器而不是IDE,那样才能让学生把精力放在语言上而不是IDE上。[/quote]

这个观点,我部分赞同。

学习命令行,显然需要更多的时间。而让初学者一开始就提不起兴趣,还学什么?使用IDE,就是快速的进入编程状态,而非在编译、连接处打转!

多人合作式的编程(软件公司、网上的开源工程),更离不开IDE——这使得程序员之间的交流变得更容易,版本控制,测试工作,也更容易分开!

12 楼

[quote]我认为教学就是不用TC,也该用命令行的编译器而不是IDE,那样才能让学生把精力放在语言上而不是IDE上。[/quote]

有趣的观点
不同的 连编系统使用的 连编命令也是不同的.
而且, 如何在命令行下连编本来不属于 编程语言的范畴.
高级连编工具带有许多连编选项, 那些库的名字也千差万别,那些库里有什么功能不看
帮助文件实在是搞不清楚.这些对初学者是很棘手的.如果他们需要更换连编系统的话,
那么他们将花费很长的时间去学习如何在新的连编系统下进行连编.

按你的逻辑,这会使初学者把精力放在不同连编系统的不同连编命令和连编选项以及千差万别的连接库上(同样不是把精力放在 语言学习上).

真正重要的是: 应该教初学者学习正确的 C 语言,也就是让初学者学习以 标准 C 为蓝本的,配以正确解释的教科书,让初学者使用执行当前标准的开发工具.

遗憾的是, TC 既不是正确的 C 语言,也不是执行当前标准的开发工具.更糟糕的是,很多教科书都是由那些完全忽视标准的人写的. 

13 楼

附一点

虽然有很多人以 linux 环境为例来试图说明 IDE 的无用性.但这些人在很大程度上忽视了 linux 环境和 windows 环境的区别.linux 除了内核以外,差不多所有其他部件都是第三方提供的而且有同一部件的多种选择,因此,这样的系统上试图做一个完善的( 象VC 那样的能节省大量开发时间的) IDE 实际上就是限制用户工作在某一个非常特殊的部件集合上.如果想摆脱这种境地,那么就必须要巨量的硬盘空间,而且这个 IDE 的设计者还需要对所有不同的 linux 有非常深的了解. 与之相反的是,可选的 
windows 环境不多,另外 windows 是 microsoft 独立规定的标准, linux 却有众多的标准制定者.可以想见的是,如果 linux 只有一个标准制定者,那么 linux 上一定会发展出成熟的 IDE.

在 Windows 环境下,如果自己喜欢玩的话,那么你完全可以丢掉 IDE. 但是,如果你是在开发真正的商业应用程序的话,那么当某个 IDE 能够给你生成大量代码,帮助你完成程序(我不喜欢在几万个函数的千差万别的参数和常量里打转),能更快捷的提供多种调试环境和多工程集成调试的话,那么不用
 IDE 是极其愚蠢的.在这种情况下,只有那些 IDE 不能完成的工作才需要在命令行下进行.

14 楼

CFree Eclipse
用了都说好

15 楼

[quote]不同的 连编系统使用的 连编命令也是不同的.[/quote]
貌似楼主的列的好几个程序用的都是gcc
[quote]而且, 如何在命令行下连编本来不属于 编程语言的范畴.[/quote]
学习IDE环境也本来就不属于 编程语言的范畴。
[quote]高级连编工具带有许多连编选项, 那些库的名字也千差万别,那些库里有什么功能不看帮助文件实在是搞不清楚.这些对初学者是很棘手的.如果他们需要更换连编系统的话,那么他们将花费很长的时间去学习如何在新的连编系统下进行连编.[/quote]
IDE的编译器高级选项就不复杂了?初学者就都能轻松学会了?
[quote]按你的逻辑,这会使初学者把精力放在不同连编系统的不同连编命令和连编选项以及千差万别的连接库上(同样不是把精力放在 语言学习上).[/quote]
按你的逻辑,这会使初学者把精力放在不同IDE连编系统的不同连编命令和连编选项以及千差万别的连接库上(同样不是把精力放在 语言学习上).

[quote]虽然有很多人以 linux 环境为例来试图说明 IDE 的无用性.但这些人在很大程度上忽视了 linux 环境和 windows 环境的区别. linux 除了内核以外,差不多所有其他部件都是第三方提供的而且有同一部件的多种选择,因此,这样的系统上试图做一个完善的( 象VC 那样的能节省大量开发时间的) IDE 实际上就是限制用户工作在某一个非常特殊的部件集合上.如果想摆脱这种境地,那么就必须要巨量的硬盘空间,而且这个 IDE  的设计者还需要对所有不同的 linux 有非常深的了解. 与之相反的是,可选的 windows 环境不多,另外 windows 是 microsoft 独立规定的标准, linux 却有众多的标准制定者.可以想见的是,如果 linux 只有一个标准制定者,那么 linux 上一定会发展出成熟的 IDE.[/quote]
我只能说上面这段逻辑很混乱,而且你对linux一知半解,对windows也不是很熟悉,而且似乎不知道还有Mac,openBSD,Solaris这些优秀的操作系统。

Eclipse,Sun Studio 都是跨平台的IDE,可以在多种操作系统运行,不限于楼主提到的windows和linux。

另外windows平台的IDE也很多,难道Eclipse,C++ builder跟 微软用的一个标准?

[quote]在 Windows  环境下,如果自己喜欢玩的话,那么你完全可以丢掉 IDE. 但是,如果你是在开发真正的商业应用程序的话,那么当某个 IDE 能够给你生成大量代码, 帮助你完成程序(我不喜欢在几万个函数的千差万别的参数和常量里打转),能更快捷的提供多种调试环境和多工程集成调试的话,那么不用 IDE 是极其愚蠢的.在这种情况下,只有那些 IDE 不能完成的工作才需要在命令行下进行.[/quote]
前面讨论的是教学,这段讨论的是商业开发。你这是偷换概念,或者逻辑混乱。我不认为某个IDE给初学者生成了大量代码是很好的事情。

16 楼

[quote]我只能说上面这段逻辑很混乱,而且你对linux一知半解,对windows也不是很熟悉,而且似乎不知道还有Mac,openBSD,Solaris这些优秀的操作系统。[/quote]
我没有必要罗列一系列实际上完全不同的 linux 来指明通常 linux 教程的局限性.
我没有必要考虑所有的操作系统来考虑成熟的 IDE 的实现应该是怎么样的.必须指出的
一点是,简单屏蔽连编过程的 IDE 只对初学者有用,这类 IDE 并不能减少实际编程的复杂性.真正有用的 IDE 是建立在某个成熟的对象模型框架上的而且能使用公开的标准方法使使用第三方产品变的轻松自然.

[quote]另外windows平台的IDE也很多,难道Eclipse,C++ builder跟 微软用的一个标准?[/quote] windows 平台的 IDE 来说, Eclipse 并不是一个很好的 IDE. C++ Builder 是用 Microsoft 的标准搭建的,它提供了一些抽象层来简化程序编写任务,但是如果没有 Microsoft 的底层标准而是有各种不同的底层标准的话, C++ builder 是难以实现"简化程序编写"这个任务的.

17 楼

[quote]我没有必要罗列一系列实际上完全不同的 linux 来指明通常 linux 教程的局限性.
我没有必要考虑所有的操作系统来考虑成熟的 IDE 的实现应该是怎么样的[/quote]

再次证明了你对操作系统多么的无知,原谅我的直白。

Mac是苹果出的,估计你连苹果机都没见过吧。
openBSD 实际上是一种Unix而不是linux,请问你用过unix吗?
Solaris 是Sun公司的服务器带的操作系统,请问你见过Solris的服务器吗?

这3个没有一种是linux。
送你一个忠告,不用对不懂的东西评头论足,只能显示出你的无知。


就算如你所说 Eclipse 不是一个好的IDE,但Eclipse是免费的,Eclipse 5年来的进步是巨大的。

说的标准,我好奇的问你一句,VC6跟VS.net用的是一个标准吗? VS.net 2003 的工程用2005打开,就要有个 迁移 的过程,难道他们是一个标准?

18 楼

[quote]再次证明了你对操作系统多么的无知,原谅我的直白。[/quote]
真有意思
我难道说过 Mac,OpenBSD 和 Solaris 都是 linux 吗? 
不考虑它们的原因很简单:它们不常见,不常见的操作系统还有一大堆,需要列出来吗?

现在我们来看看有多少不同的 linux 标准制定者:
Slackware,Debian,Arch,RedHat,Mandriva,libranet,Vector,Fedora,linspire,Buffalo,caos,rock,linare,feather,DNALinux,Yoper,Amigo,Mepis,Ubuntu,Suse/Novel,JDS,Puppy,ZenWork ...

你能指望他们共同提供一个能简化编程任务的抽象层么? 你也许会说 JAVA 做到了,但
C++ 退化成 JAVA 还能称为 C++ 吗? 可以想见的是,在这样一种环境下, eclipse+cdt
已经是最好的 IDE 了.

至于你说的 .net 框架和 MFC/ATL 框架的差异问题, 这么回答吧,它们确实是不同的框架而且 
.net 依旧在不断发展,但这并没有改变它们是 Microsoft 主导的框架标准,他们的最终实现还是要回归系统底层 API,而这个底层 API 接口虽然发展了不少年,但接口的变化不大.你也许会说 linux 内核的变化也不大,但众所周知的是, WIN API 接口是比操作系统内核广泛的多的一个层面,我们不能指望仅仅在 WIN CE 的基础上构建出一个广泛的编程框架, 如果这里有许许多多的 基于 WIN CE 的 独立系统开发团体的话.


至于你说的面对初学者这个问题, 事实上我的观点很清楚, 对于初学者来说, 是否用 IDE 不重要,重要的是他们有正确的教材和工具( TC 不是这样的工具 ). 而你是认为初学者不应该使用 IDE 的.

19 楼

顶  用着wxdevcpp无法编译 
看编译日志提示找不到相关文件 不知道怎么解决
现在下载用codeblocks感觉不错

20 楼

不知道
sarrow
大哥觉得cfree怎么样?

我来回复

您尚未登录,请登录后再回复。点此登录或注册