对不起,直到现在才想到写这篇文章。怎么说呢?情况是这样的。刚开始学C语言的时候,想在机器上安装。visual c 的,因为Turbo C太老了,用起来不方便,自然想安装vc 。不知道大家有没有注意到。vc而且有些机器安装不成功,不知道是不是版权问题。我的机器也不例外,两台都安装不了。但又不想用TC,怎么办呢?幸运的是,我在百度的一个关于编程的帖子栏里看到了一个帖子,建议你使用免费的编译器。于是,我下载了MinGW Developer Studio,从那以后,我一直用它。感觉用起来不错,占用空间小。但是要提醒大家,有些头文件是不支持的,有些是windows函数不能使用,它使用G 编写代码时也要注意标准。
我在这里写这篇文章,主要是为了给初学者一些指导。希望对大家有所帮助,o(>﹏<)o不要只知道安装VC了。。。
PS:在使用MinGW有一个问题,需要注意,当你编译程序代码长,代码是第一次编译(修改后编译),编译时间会延长,在此期间,屏幕上弹出的黑框暂时只显示一个光标,此时你按任何键都不会有反应。现在该怎么办?在程序正常执行之前,一定要耐心等待它的编译。假如你在此期间强行关掉它,那么下次就不能再编译文件了,编译器就会报错。如果你还想编译它,你必须打开另一个项目文件夹,重建文件并重新编译。当然,你应该耐心等待。
(以下系统转载)
主题:C/C 选择编译器 作者: Chipset 发表时间:2009-1-2 14:15:00
特别说明: 鉴于有人不时问我用什么编译器,我翻译了它Bjarne Stroustrup主页上compilers栏目的一篇文章,希望对大家有点指导意义。 在粘贴翻译稿的过程中,所有超级连接都丢失了(pfan提供的编辑功能不够好),我不得不在附近添加,对不起。 另外,为了避免重复发帖,我把这个网站sarrow原始相关文章也被复制,供犹豫中的朋友参考。 一个C 编译器的不完整列表 2008年11月18日更新 我(Bjarne Stroustrup http://www.research.att.com/~bs/homepage.html) 常常被提问建议的C 但我不建议编译,因为它看起来像站在商战的一边。而且,我不认识每一个C 只知道编译器C 大多数编译器都像牛毛。一般而言,我使用半打(6个)编译器,但这充其量也仅仅不过是表面文章而已。 我建议人们在选择编译器时要仔细考虑它与标准的一致性。如果可能的话,避免使用任何不符合要求的东西ISO标准或者不支持标准库某项实现的编译器。所有主要C 最新版本的编译器供应商做得很好。 假如你是新手,不知道如何识别编译器是否合适,试着编译以下程序: #include<iostream> #include<string> using namespace std; int main() { string s; cout << "Please enter your first name followed by a newline\n"; cin >> s; cout << "Hello, " << s << '\n'; return 0; // 可以不要返回语句 } 如果编译器不能处理如此简单的程序,它就不适合学习标准C 。(如果您剪切并粘贴上述代码,请小心#include 指令后的小于号). 虽然这些细节早已陈旧,但这里有一篇关于一致性的长文章 http://www.cuj.com/roundup/a.htm和boost.org编译器状态页 http://www.boost.org/status/compiler_status.html。一致性只是编译器质量的一个指标(其他衡量指标是生成代码质量、错误信息、编译速度、与开发工具集成、支持程度和向后兼容性),但一致性非常重要。使用供应商的语言扩展特性和非标准特性限制了您的代码可移植性,并阻止您选择新供应商的产品。 软件开发工具框架和库中嵌入了大多数编译器。这些框架、环境和库对可能非常有用,但是记住使用它们会把你锁定到单一供应商,而且一些应用存在严重的运行性能问题。 当在网上寻找C++的时候,你会发现很多信息”隐藏”在各自产品下面。事实上,我用google.com寻找C++编译器比直接联系C++编译器供应商更方便。在此,忽略市场商标,我列出很多C++编译器的提供者。 一些编译器可以免费下载(尝试商业应用前要看看他们的条件/许可证): Apple C++ http://developer.apple.com/tools/macosxtools.html. OS X开发工具CD上也有。 Bloodshed Dev-C++ http://www.bloodshed.net/devcpp.html. 一个基于GCC(Mingw)的IDE. Borland C++ http://www.borland.com/downloads/download_cbuilder.html Cygwin (GNU C++) http://www.cygwin.com/ Digital Mars C++ http://www.digitalmars.com/ MINGW - "Minimalist GNU for Windows" http://www.mingw.org/. 另外一个GCC for Windows版本,包含了一个免费的(非GPL)w32api。 DJ Delorie's C++ development system for DOS/Windows (GNU C++) http://www.delorie.com/djgpp GNU CC source http://www.gnu.org/software/gcc/gcc.html IBM C++ http://www-949.ibm.com/software/rational/cafe/community/ccpp 用于IBM power, System Z, Bluegene, and Cell. Intel C++ http://www.intel.com/software/products/compilers/clin/noncom.htm for linux The LLVM Compiler Infrastructure http://llvm.cs.uiuc.edu/(基于GCC). Microsoft Visual C++ 2008 Express edition http://www.microsoft.com/express/vc. Sun Studio http://developers.sun.com/sunstudio. 一些编译器需要支付费用(有些允许试用期内免费下载): Borland C++ http://www.borland.com/bcppbuilder/ CodeWarrior C++ http://www.metrowerks.com/products/macos/ (正式名字是Metrowerks),支持很多平台 Comeau C++ http://www.comeaucomputing.com/支持很多平台 Edison Design Group C++ Front End http://www.edg.com/cpp.html - 很多C++编译器公用商使用它 http://www.edg.com/resellers.html Green Hills C++ http://www.ghs.com/products/optimizingC++EC++Compilers.html用于很多嵌入式系统平台 HP C++ for Unix http://www.hp.com/go/cpp/和HP C++ for OpenVMS http://h71000.www7.hp.com/commercial/cplus/cplus_index.html. Intel C++ http://www.intel.com/software/products/compilers/支持Windows, Linux, 和一些嵌入式系统 Mentor Graphics/Microtec Research C++ http://www.mentorgraphics.com/embedded/compilers/index.html用于很多嵌入式系统平台 Microsoft C++ http://msdn.microsoft.com/visualc Paradigm C++ http://www.devtools.com/, 用于x86的嵌入式系统 The Portland Group C++ http://www.pgroup.com/prodworkpgcc.htm(用于奔腾架构处理器的并行) SGI C++ http://www.sgi.com/products/software/irix/tools/c++.html, 优化编译器 Sun C++ http://www.sun.com/forte/cplusplus/index.html WindRiver's Diab C++ http://www.windriver.com/products/, 很多嵌入式系统使用。 对于我而言,让该列表完整和保持最新状态不太可能。C++世界太大,新东西出现太快。对于那些我未能列出来的供应商表示歉意,我知道会有一些,如果你有一个连接并认为应该在此列出来的话,请给我写信:bs at research.att.com。再次重申:我仅仅列出编译器,我并不是赞成它们。而且对于每个人而言,没有哪种编译器最好,不同的人有不同的需要。 C++编译器的其他列表: The open directory project http://dmoz.org/Computers/Programming/Languages/C%2b%2b/Compilers/ Compilers.net http://www.compilers.net/Dir/Free/Compilers/CCpp.htm: 免费的C和C++编译器列表。 一个过滤器可以用来改善很多编译器的错误信息,见STLfilt http://www.bdsoft.com/tools/stlfilt.html. sarrow朋友关于 <<免费的C/C++集成编译环境(IDE)>> 的文章摘录如下: 连接:http://bbs.pfan.cn/post-204274.html 更全的列表以及下载链接见: http://www.compilers.net/Dir/Free/Compilers/CCpp.htm 题头: 献给为编译环境而烦恼的同志们。 正片开始: Dev-C++ 本软件就不用说了,这是pfan论坛上的首选IDE环境;他默认安装minGW作为编译器——就是windows化了的GCC编译器。版本应该是3.4; 由于其编辑器使用简单,而内核gcc3.4对c99和c++2003的支持度都比较高,所以,这个软件比较适合标准C/C++初学者!除了支持外部库,Dev-C++还支持自己的开发包,你可以从升级“包”这个功能上获得许多有用的东西; 你可以在http://www.bloodshed.net获得它的下载。 WxDev-C++ 不知道是英雄落幕还是怎么的?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/ Code::Blocks 这个有着怪名字的东西,是个比较新的免费IDE,当前是面向C/C++使用而开发的工具;注意,这个是开源跨平台的哦!这个软件是用插件式构架的,那么这个软件就设定成可以非常的个性化! 由于它支持多编译器,所以,它没有默认绑定编译器;由于它支持的编译器比较多,我就挑点讲: minGW的GCC编译器、vc7还有vc8以及Borland C++ 5.5; 下载:http://www.codeblocks.org/ Ultimate++ 这个软件也式跨平台的——就我看来,其最大的特点,就是有自己的GUI库! 下载:http://www.ultimatepp.org/index.html Eclipse 这个巨大的东西,也是跨平台的——不过这个东西太大了点,我也就不说了——不符合简单易学的规则。 下载:http://www.eclipse.org/ VC 最后,哈哈,因为个人的原因,我把Microsoft公司的VC产品放在最后。VC6、VC7、VC8者是当前还活跃的3个ms的C/C++编译环境——不过可惜的是,他们都不是免费的! 在这里提VC的原因呢,有两点: 1. 虽然他们不免费,不过,在中国来说——等于免费,原因吗?大家心知肚明,我就不说了! 2. MS不提供大餐,甜点还是有的: Microsoft Visual C++ Toolkit 2003 这个编译工具包——免费! 然后Microsoft Visual C++ 2005也有一个免费版!当然不是全功能的,不过对于初学者,也是够用了! 尾声: 对于NB的人来说,有没有IDE都一样!IDE只是快速开发的工具而已! 这里,我要说说为什么把ms公司的VC系列放最后的原因:竞争才有进步,而ms的公司的策略,就是只让自己独活;像VC系列IDE这样大包干的做法,我是认为不正确的——一个把更多的选择权留给使用者。 我(Chipset)使用C/C++编译器和IDE的历史: 我个人只用过少数几种编译器和IDE,简单描述一下感受。 1、VC++6.0 + SP6 这个IDE在Win32上很流行,尤其在恋古情节和盗版盛行的中国教育界。 VC++6.0对C90标准支持的不错,但是对C99和C++98都支持的很弱。VC++6.0本身的bug非常多,不过调试功能相当不错,可惜这点长处对我来说基本没有什么意义,因为我从来不用调试器。 VC++6.0的缺点非常明显,主要是库函数很多错误,存在严重问题,由于97年底竣工,不支持C99和C++98,不过我们不得不承认VC++6.0 + Windows98系统简直是C程序员的绝配。 如果您对VC++6.0仍旧情有独衷,迅雷搜索一下,有很多下载地址。 2、Dev C++ 4.9.9.2 说真的,这是一款非常好的IDE,内嵌gcc编译器(含g++3.4.2),体积小,安装完毕就50MB的空间,对C99和C++98/03支持都很好,而且可以编写Windows程序,在Win32平台上尤其适合初学者。缺点是升级困难,因为它06年后已经不再升级,不过令人欣慰的是WxDev-C++继承了它的脚步。 3、VS2005 这是一款重量机的IDE(内嵌多种编译器,包括MS C++8.0),在硬盘上安装后肯定上1GB,体积庞大,即使你单独安装.net框架 + 全局搜索环境 + VC++8.0体积也不会下1GB。但是功能确实强大,基本上一应俱全,可以编写C/C++/Win32/MFC/ATL等各种应用程序。调试功能十分强劲,很明显,比VC++6.0无论从体积上还是库的全面上都有质的飞跃。如果你是C++初学者,我并不建议你使用它,因为实在太大了,而且对纯C++程序的编译能力略逊于Dev C++ 4.9.9.2(g++3.4.2),生成代码质量不及Borland C++。 4、Intel C++9.1/10.020 必须把Intel C++编译器集成到VS2005中使用(您可以想想体积多么庞大),否则没有办法安装。尽管Intel C++编译器编译优化后生成代码质量更高,而且可以导入Visual Studio的工程,但我仅仅用于测试,我仅仅用命令行编译(您也可以用IDE编译和调试),后来挥泪卸载了它。 5、Code::blocks8.02+MinGW(gcc3.4.5) 我不得不说,Code::block8.02简直就是一款划时代的开源IDE,除了支持多种平台,几乎可以满足最苛刻的商业应用,支持10多种编译器,支持VC++工程、Visual Studio工程和Dev C++工程导入。配合gdb调试器,调试功能也很丰富,调试功能略逊色于Visual Studio系列,但是个性化十足,支持添加各种组件开发,例如QT,wxWidgets等等,只要您能想像的出来,google一下几乎都能找到怎么添加。如果您是初学者,鄙人强烈建议你选用这款Code::blocks8.02+MinGW(gcc3.4.5),因为它体积不太大,安装后大约100MB而已,就算您懒得添加组件,也能开发C/C++/Win32应用程序,而且对C90/99, C++98/03支持都很好。 6、Code::blocks8.02+gcc4.3.2+boost1.37 这个我就不说了,本站有我的一篇文章讲述安装配置的,详细的情况见我的博客。 7、gcc4.3.2(Linux) gcc编译器不仅仅用于PC也可以用于嵌入式系统和服务器级别的C/C++程序编译,配合Open MP可以开发编译并行程序,用于高性能计算。使用Linux系统和Unix系统的朋友不少选gcc做C/C++编译器。
作者: zhaoyg 发表时间:2009-1-2 15:15:00
UP
作者: Chipset 发表时间:2009-1-2 15:34:00
我用过不少编译器和IDE,但是不建议TC和TC++,Win-TC。
作者: zhaoyg 发表时间:2009-1-2 15:38:00
Code::blocks8.02 不错是不错,但调试不方便,不如VC好。 还有,启动速度慢(关闭倒是挺快的)。
作者: Chipset 发表时间:2009-1-2 15:45:00
: Code::blocks8.02 不错是不错,但调试不方便,不如VC好。 还有,启动速度慢(关闭倒是挺快的)。VC启动快的原因是因为缓存(首次使用的时候另外开辟一块空间,然后该空间始终存在),Dev C++首次启动会询问你是否这样做,如果你确定,那么后来的启动就会快,编译也会快。Code::blocks第一次启动的时候不提示这样做,但是如果你希望编译的快,却可以设置相应选项,如果你希望以后启动的快,可能进入后也有该选项可以设置,否则建议Code::blocks开发团队加入此选项就是了。
作者: zhaoyg 发表时间:2009-1-2 15:58:00
原来如此。 thanks
作者: zhaoyg 发表时间:2009-1-2 16:00:00
还有,不要再给我加分了,如果不是考试成绩的话!!!
作者: sarrow 发表时间:2009-1-2 16:51:00
UP 关于这一点,俺没啥可再说的了。 提一下另一个:学习目标的问题。 俺推荐: 嵌入式和游戏 原因:智能电子产品的小型化、普遍化是大势所趋——嵌入式学习,绝对没错! 玩耍是人类的天性——其内涵可以映射为原始冲动、求知欲等等欲望,而电子游戏则是上述的虚拟平台,因此,游戏设计永远不会过时!
作者: Chipset 发表时间:2009-1-2 17:36:00
: ...而电子游戏则是上述的虚拟平台,因此,游戏设计永远不会过时!不错,但是设计游戏很大程度上是思想,而不是技术问题,多数人没有这个思想。
作者: yjypm8460859 发表时间:2009-1-3 13:02:00
: 智能电子产品的小型化、普遍化是大势所趋——嵌入式学习,绝对没错!嵌入式对模电与数电的要求如何,关于这两门课我的理解是只要简单原理理解,不考虑细节,比如我不会出分析其复杂的电路图(因为水平有限,哈哈),只需对一些常用电子元器件的作用的了解即可,如一些引脚的功能的熟悉。 不知能否如此,望指正!