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

时间:2012-06-07 20:22:52

标签: 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?

6 个答案:

答案 0 :(得分: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(现在是那里的默认编译器)开箱即用,但你自己更多很多 - AFAIK,你需要一些其他的编译器安装和工作(并且真的知道如何使用它)来安装它。在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 ++已经过时了。
  6. 总结:如果你想要一个IDE,VC ++ Express是明智的选择。如果您更关心最新的C ++ 11功能并且不介意在命令行中工作,MinGW可能是最佳选择。其他人肯定有利基,但如果你的目标主要是新的,写便携式C ++,我会认为他们中的大部分都是劣等的。

答案 1 :(得分:5)

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

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

你必须对他所包含的工具集合感到满意。

答案 2 :(得分:1)

  

然后我查看了Visual C ++ 2010,因为我已经安装了它,但是   看起来我需要安装2008只是为了使用.net framework 3.5

呃,C ++和.NET之间没有什么互相做。

Visual Studio是用于Windows的 C ++编译器。其他大多数人的Windows支持都很差。

答案 3 :(得分:1)

我知道你提出的问题是“允许我传递小exe”但如果你有兴趣(比如我)有时只是运行C ++代码而不是创建exe,你可能想要{{3}试一试。

答案 4 :(得分:-1)

对于Windows上的简单C / C ++编译器,很难击败djgpp: http://www.delorie.com/djgpp/

答案 5 :(得分:-1)

恕我直言:今天只有几个kb的exe的方法就是用.net框架来做,说2.0尽可能兼容。

我猜你使用的工具,你至少会静态链接标准库的某些部分,这将破坏你对小exe的要求。