C++编译器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++编译器相关的知识,希望对你有一定的参考价值。
我刚接触C++语言,求一个好一点的IDE编译器,能够执行程序,编译程序的编译器,跪求!
C++编译器及IDE(Dev_C++、WxDev_C++、VC等)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++下来使用!
当然,最大的好消息,就是,这么好的工具竟然也是免费的!
补充一下:WxDev_c++是WxWidgets与Dev_c++是结合,WxWidgets是跨平台的界面开发包,并且是开源的,目前使用的比较广泛.
下载:http://wxdsgn.sourceforge.net/
官方论坛:http://wxdsgn.sourceforge.net/index.php
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也有一个免费版!当然不是全功能的,不过对于初学者,也是够用了!
更多:http://www.compilers.net/Dir/Compilers/CCpp.htm
上面说的很清楚,不过你还是要考虑自己的具体情况,根据自己情况而定。如果做软件要求与微软系统兼容很好,当然还是用自己的东西,毕竟自己的东西自己了解。我现在用的VS2003,个人感觉挺好。
参考资料:http://blog.csdn.net/ljfth/archive/2009/03/07/3965955.aspx
参考技术A .5“Borland C/C++ 5.5.1 for Win32”是Borland公司在2000年免费放出的一个C/C++编译器,其功能完整、包含多种SDK,且容量极小,安装版本大小仅8MB。Borland公司的旗舰级产品“C++ Builder 5”内置的就是这一编译器。
2.Dev-C++ 5.0
是Bloodshed软件公司于2002年9月26日推出的一个基于MingW(即GNU C/C++的Win32版)的微型C/C++开发工具。由于使用了GNU C/C+内核,所以在做软件移植时非常的方便,你可以方便的将一个程序移植到任意一个有GNU C/C++的平台。而且由于基于GNU C/C++的开放源代码软件很多,所以使用Dev-C++是一个很好的选择。但由于它的调试不便,帮助不全等问题,也使得它在推广上举步艰难,远比不上Borland C/C++、OpenWatcom C/C++这两个同是免费的编译器。
3.DJGPP
DJGPP是基于32位保护模式的C语言编译器,是一个GNU软件,换句话说,你可以得到它整个系统的源代码,且可以任意修改。它的集成环境RHIDE是仿Borland C++ 3.1的,十分好用,这比Watcom C要强多了。
4.LCC-Win32
运行于Windows9x/Me/NT/2000下的免费的32位C语言编译系统。它的原始发布文件只有 3M,但却拥有一个功能强大的集成开发环境(IDE)、速度极快的编译器与连接器、方便顺手的调试器、资源编辑器和版本控制系统。另外还提供图像编辑器和 C 语言源文件格式化缩进器等附加工具。通过它的应用程序向导,你可以单击几次鼠标轻松得到一个应用程序框架,丝毫不比其它庞大的同类软件逊色。 你可以用LCC-Win32开发32位的控制台程序、Windows常规程序、动态连接库(DLL) 以及静态连接库(LIB)。LCC编译器支持标准的ANSI C,同时支持 C语言的扩展。通过下载相关工具,LCC-Win32还提供对Eiffel、Fortran语言的支持。
5.OpenWatcom:Watcom系统编译器是加拿大Watcom公司开发的Intel x86体系16/32位编译器,其最新版是11.0c。
Watcom C/C++的集成开发环境极差,不像Borland C/C++和Visual C/C++那样有漂亮的界面,编译连结不过轻轻一点。Watcom C/C++的大部分使用者都在命令行下编译程序。想想吧!一个需要在命令行下编译程序的编译器,怎么匹敌Borland C/C++和Visual C/C++,甚至是C++ Builder呢?
当然,编译器的好坏并不能单单从使用方便使用上来比较,专业的程序员最关心的是目标程序的质量。Watcom系列编译器相比Borland编译器和Microsoft编译器有一个最大的优势,那便是速度:用Watcom C/C++编译出来的程序在速度上远远超越(记住,不是一点儿,是超越了许多)了Borland C/C++和Microsoft Visual C/C++编译出来的程序。这样一来,即使是没有集成开发环境,程序员们也认了。这也是不少游戏程序员亲昧于这个编译器的原因。
现在我们所用到的OpenWatcom C/C++ 1.0便是Watcom C/C++ 11.0c开放后的版本,它是免费、而且开放源码的。
6.当然还有我们经常看见的TC2.0 TC3.0 Borland C++3.1 等
参考资料:
需要付费的编译器(有些允许有评估期的免费下载):
Borland C++
Comeau C++ - 支持多平台
Compaq C++
Digital Mars C++
Edison Design Group C++ Front End - 被许多C++编译器厂商采用
Green Hills C++ - 支持嵌入式系统平台
HP C++
IBM C++
Intel C++ - 支持Windows, Linux, 和其他嵌入式系统
Interstron C++
Metrowerks C++ - 支持多平台,可从Metrowerks主页上查询
Mentor Graphics/Microtec Research C++ - 支持嵌入式系统平台
Microsoft C++
Paradigm C++ - 支持x86嵌入式系统
The Portland Group C++ - 针对奔腾CPU优化
SGI C++ - 优化的编译器
Sun C++
WindRiver's Diab C++ - 用于很多嵌入式系统 参考技术B 别人分析的对你不一定适用。我也是从新手过来的,我觉得DEV-C++是最好用的,免费,而且很小,对于刚学c++(即使是中高层次的)比较合适,没有太多花哨的功能、、、 参考技术C VC6,简单易用,而且介绍的资料也很多。 参考技术D DEV C++
使用纯 C++ 编译器与 Visual C++
【中文标题】使用纯 C++ 编译器与 Visual C++【英文标题】:Using a pure C++ compiler versus Visual C++ 【发布时间】:2009-10-16 00:56:13 【问题描述】:我四处寻找这些问题的答案,但运气不佳。所以,我想我会把它们贴在这里以获得一些澄清。如果这是重复的,请告诉我,我将关闭它。
好的,话虽如此,我想开始学习 C++。我来自 C# 背景,我非常尊重 Visual Studio 及其功能。现在,我的问题是。与非 Microsoft 版本(如 MinGW)相比,Visual Studio 的编译器在 C++ 上的工作情况如何?
我喜欢的是这个。我对 Microsoft 没有任何问题,但我真的很想以“纯”形式学习 C++,而不是被任何特定的实现所束缚。 Visual C++ 对 .NET Framework 的依赖程度如何?是否可以通过 Visual Studio 创建“纯”C++ 应用程序而无需任何 .NET 使用或开销? Visual Studio 编译器是像使用 C#/VB 一样将 C++ 编译成 CIL,还是像其他编译器一样一直编译?
感谢任何人提供的任何帮助!
【问题讨论】:
请注意,MinGW 作为基于 GCC 的编译器也有很多非标准选项。 【参考方案1】:Visual C++ 编译器会将 C++ 代码编译成与 .NET 框架无关的独立 EXE。
获得 .NET 包袱的唯一方法是将 C++ 编译为“托管”。
如果您创建一个新项目(文件|新建|新建项目)然后从项目类型中的 Visual C++ 子菜单中选择“Win32”并选择“Win32 控制台应用程序”,Visual Studio 将创建一个带有几个源代码的简单项目将编译成一个小的可执行文件。
大多数时候,Visual C++ 与其他编译器非常相似。避免使用#pragmas、微软库(MFC、ATL),你应该没问题。
编辑(感谢 Cheeso)-Documentation of where Visual C++ diverges from standard.
一般来说,我建议将 boost 库用于线程和网络,因为它们适用于许多平台(即 linux)。此外,如果您的代码可以在 GCC 和 Visual Studio 中编译,那么您在保持它的可移植性方面做得很好。
【讨论】:
感谢您的精彩回答。这就是我所希望的!另外,感谢所有回复的人! MS 记录了 VC++ 偏离 C++ 标准的地方。 msdn.microsoft.com/en-us/library/x84h5b78.aspx @Cheeso:这些只是“官方认可”的已知问题。实际上,还有更多。 @andreyT - 是的,唯一真正的解决方案是从一开始就使用两个编译器进行编译。【参考方案2】:最新版本的 VC++ 已明显更符合 C++ 标准,因此使用 Visual Studio 编写“纯”C++ 并不是真正的问题,假设您远离 Windows API、COM+ 和 ATL。事实上,Visual Studio 的文档非常丰富,详细介绍了标准库和 STL,因此可以帮助您学习很多东西。它不能教会你所有的东西,但它肯定装载了大量的信息,可以移植到任何编译器,并且在 IDE 中很容易访问。
【讨论】:
此外,调试器仍然是最好的调试器之一,特别是因为您可以将程序计数器(调试期间的小黄色箭头)拖放到任何地方,并且监视窗口会对您的语句进行非常复杂的评估类型。【参考方案3】:如果您创建一个新的解决方案,您应该选择新的 Win32 项目或 Win32 控制台应用程序,并选中“空项目”选项。然后您可以添加一个 main.cpp 文件,并添加您的标准 C++ 代码。
【讨论】:
【参考方案4】:如果您喜欢 Visual Studio,请继续使用它来学习 C++——我没有使用过最新版本,但即使是之前的版本也非常符合标准,符合 C++ 标准,我假设是最新版本只能变得更好。您可以在 Visual Studio 中拥有许多不同类型的项目,包括“控制台应用程序”,这是您可以在任何平台上制作的“普通”类型,以及许多其他类型,例如使用旧的 win32 api 的 Windows 应用程序,使用 MFC 或其他早于 .NET 的框架制作的,使用“托管代码”的 .NET 等。
只要确保您始终在“控制台应用程序”项目中工作,您的操作方式与您在其他平台和/或其他 C++ IDE 上的操作方式非常接近。
【讨论】:
【参考方案5】:如果您限制自己编写符合 ANSI C++ 的代码,那么您在 VS 中编写的内容将在其他编译器中工作,直到您必须与图形界面或 IO 交互。然后,您需要确定您使用的是可移植的东西,例如 OpenGL,而不是 DirectX。
要设置您的项目,此处的步骤可能很有用: http://bytes.com/topic/net/answers/447572-strict-ansi-c
【讨论】:
【参考方案6】:Microsoft Visual Studio 2005 带有一个非常好的、符合 C++98 标准的纯 C++ 编译器。如果您对纯 C++ 感兴趣,请不要忘记在项目设置中禁用语言扩展,一切顺利。没有人会强迫你使用 .NET 框架、MFC 或类似的东西。只是纯核心 C++ 语言和 C++ 标准库。
当然,就像任何其他编译器一样,它也知道不合规问题,但总的来说,它再次出奇地好。他们的编译器的旧版本(特别是 MS VS 6.0)存在许多不合规问题,甚至无法在禁用语言扩展的情况下编译自己的头文件。在 2005 版中,他们修复了很多此类问题。
【讨论】:
【参考方案7】:创建标准 Win32 项目后,您可以进一步提高合规性。在项目属性表上,有一个 C/C++ 类别,带有一个语言条目。这列出了 VC++ 可以 不同于标准的许多情况。在这里,您需要关闭语言扩展,并打开“wchar_t 作为内置类型”、“for-loop 一致性”和“RTTI 支持”。
【讨论】:
以上是关于C++编译器的主要内容,如果未能解决你的问题,请参考以下文章