用于Windows的简单C++编译器

MxL*_*evs 8 c++

我以为我会用C++而不是一些解释性的语言写一些东西(因为我需要简单的表现)然后去尝试不同的工具.

首先我发现cygwin因为它有g ++,但它需要cygwin.dll来运行exe.

然后我尝试了mingw,但似乎我需要在libgcc和libgstd之类的内容中包含一些dll,这会使可执行文件膨胀到大约MB(我真的不需要那么多字节来做简单文件I/O )

然后我查看了Visual C++ 2010,因为我已经安装了它,但看起来我需要安装2008只是为了使用.net framework 3.5.好吧,我不介意使用4.0,但我想有很多人在他们的Windows机器上没有4.0,读取文件会很不方便.

我可以使用什么来让我传递小exe(例如:几KB的价值)来执行在大多数Windows机器上运行的简单的一次性操作?(因为它只与windows用户有关)

或者我应该只使用C并使用gcc进行mingw?

Jer*_*fin 8

至少有一些明显的候选人:

VC++:从VC++开始,2010年开始支持一些C++ 11特性.VC++ 11(目前处于beta测试阶段)增加了一些.有相当不错的代码生成,很多人认为是最好的调试器,以及一个产生相当混合的评论的IDE.许多使用它们的人至少在某些方面更好地考虑了老一代的IDE(VC++ 5和6),但是从那时起编译器已经有了很大的改进,以至于旧的IDE确实不适合大多数人(除了支持古代代码).

MinGW:STL目前的软件包具有gcc 4.7.0,它(至少可以说是)比VC++有更好的C++ 11支持.它包含了很多移植的Unix/Linux工具,但基本上只是一个命令行环境.如果您想要类似IDE的东西,则必须单独安装/配置它.

Cygwin:这也是基于gcc,但不是将编译器移植到Windows,而是将Linux移植到Windows,并在移植的Linux上运行编译器.显然我夸大了(一点点)但不是很多--Cygwin主要是在Windows上运行Linux/Unix代码,尽可能少的改动.他们提供的工具也适合 - 它正在尽力成为在Windows内核下运行的类Unix环境.对于任何新的开发来说,它绝对不是我的首选.

Qt Creator/SDK:这是gcc的另一个包装,但是带有IDE.如果你想用Qt编写代码,它可能是你的第一选择.否则,我可能会避免它 - 虽然它可能可以正常工作,否则,它是假设Qt为默认值.

Eclipse/CDT:您也可以使用g ++的副本找到它.至少在我最后一次尝试时,它需要相当多的配置工作才能让它正确编译.如果你将Eclipse用于其他目的,那么让它做C++可能是值得的.否则,我个人会避免它.

C++ Builder:在Borland时代,这是微软主导地位的最大挑战者.Embarcadero似乎试图让它再次回归主流.这里的重点似乎更多地放在IDE,GUI工具包等上,而不是编译器本身.编译器本身似乎有点落后于gcc和/或VC++.入门版售价150美元,并将产量销售限制在1000美元,此时您需要花费1000美元的大部分时间才能升级到专业版.

Clang:最近开始的主要编译器,但真正努力成为最好的编译器之一.拥有任何可用编译器的最佳诊断功能.目标LLVM,它为运行时分析提供了各种各样的工具.它的主要企业赞助商是苹果,虽然如此,而它运行了很好的在Windows上的OS/X(现在是默认的编译器有)的方块,你是一个很多更对自己的-据我所知,你需要一些安装和工作的其他编译器(并且真正知道如何使用它)来安装它.在Windows上,这有点像从垃圾场买一辆肌肉车.有了足够的工作,你可能会得到镇上最酷的汽车 - 但在Windows上,它目前更像是一个项目而不是一个工具.

还有一些通常可以避免:

  1. 大约在2008年之前的任何版本的VC++.简单的低级C++实现.
  2. 4.x之前的任何g ++版本.再次,C++的劣质实现.
  3. djgpp:几乎是最糟糕的.这真的针对MS-DOS与(自定义)DOS扩展器.一个古老版本的gcc完善了可怕性.
  4. OpenWatcom:也主要针对MS-DOS.它使用的是比djgpp更好的DOS扩展器,但这几乎是一种愚蠢的赞美.编译器甚至不太符合C++ 98; C++ 11更新让我觉得不太可能很快(如果有的话).
  5. 数字火星:Walter Bright现在主要使用他自己的D语言.虽然C++编译器仍然可用,但它编译的C++已经过时了.

总结:如果你想要一个IDE,VC++ Express是明智的选择.如果您更关心最新的C++ 11功能并且不介意在命令行中工作,MinGW可能是最佳选择.其他人肯定有利基,但如果你的目标主要是新的,编写可移植的C++,我会认为他们中的大部分都是劣等的.


qua*_*ana 5

我目前正在使用Stephan Lavavej的MinGW发行版,网址为http://nuwen.net/mingw.html

我用它来生成使用gcc的.exe文件.

你只需要对他所包含的工具集合感到满意.