没有集成开发环境的Windows C++编译器?

25

我在寻找一个可以在Windows上运行的C++编译器(比如g++),我希望能够在命令提示符中使用。

我使用的文本编辑器是Notepad ++,我想设置一个宏来编译我的程序。

但我不想安装Cygwin。

有什么建议吗?


在命令行上编译本地C++程序:https://learn.microsoft.com/en-us/cpp/build/walkthrough-compiling-a-native-cpp-program-on-the-command-line?view=vs-2019 - user3885927
8个回答

34

MinGW是Windows下的GCC/G++编译器,比Cygwin更轻量级。与Cygwin GCC的主要区别在于,它不会尝试模拟UNIX API,而是需要使用Windows API(当然还有标准的C/C++库)。与Cygwin不同的是,MinGW也不提供shell和工具,只有编译器。

还有一个相关的系统叫做MSYS,它提供像Cygwin一样的shell等功能,但这并非必需品。MinGW本身可以在CMD中运行(但是出于自己的理智,我强烈建议您使用类似Bash的更好的东西)。


这是一个编译器。它本身就是GCC,移植到了Windows上。可以在所有Windows系统上运行。 - Zifre
它说它是Bourne shell,是cmd.exe的替代品,这意味着它像Cygwin一样,但更轻巧。难道没有可以在cmd.exe上本地运行的编译器吗? - hwrd
1
事实上,MSYS包括“bash”。MinGW本身只是工具链的内容。 - Eduard - Gabriel Munteanu
太好了,我回家后会试一下 :) - hwrd
http://www.mingw.org/wiki/mingw_for_first_time_users_howto - jaggedsoft
显示剩余3条评论

24

1
如果你刚开始一个新项目,选择哪个并不是很重要。但是,如果你正在使用已有的代码库,可能已经在使用Visual C++,并且想要开始使用命令行编译器,那么这显然是最好的解决方案。 - Greg Hewgill
2
为什么GCC应该进行更好的优化? - Jean Azzopardi
3
@Zifre - 如果GCC优化比MSVC更好,我会感到惊讶。我想有些基准测试会由一个编译器赢得,而其他基准测试则会由另一个编译器赢得。如果您可以获得显示GCC明显优于MSVC的数字,我相信很多人会感兴趣。 - Michael Burr
1
@Zifre:GCC并不是“更成熟”。MSVC和GCC都很成熟,各有其优点。当然,它们都是30年的代码,逐渐扩展和改进,到现在为止,它们都是用口水和胶带粘在一起的。成熟度不是问题。无论如何,最近我检查了一下,GCC仍然不能像MSVC的COMDAT折叠优化那样做任何事情,这对于在GCC下使用模板重载代码的可执行文件大小真的很有影响。所以,不,GCC并不是“更好”。它在某些方面做得更好,在其他方面则失败了。 - jalf
2
此外,MSVC 专为 x86/x64 进行了优化。GCC 需要支持几乎所有曾经生产的 CPU。样样都会,样样不精。 - MSalters
显示剩余5条评论

8

这实际上是一个很好的答案,因为SDK的大小比MS Express IDE要小 :) - mlvljr

5

嗯...像cl一样,我真的看不出它有什么优势,除了编译速度快之外。它没有很好的优化,并且据我所知,它是闭源的。 - Zifre
后端可以在DMD源代码中找到。至于优点,它是如此自包含,以至于安装指令只需要1)解压缩2)编辑路径3)使用。另外,它仍然可以输出几乎任何Dos / Windows格式,甚至可以回溯到16位的.COM文件。 - BCS
嗯... 你为什么需要16位的.COM文件?人们还在使用DOS吗? - Zifre
@Zifre:嗯,你有看过《每日WTF》吗? - BCS

4

也许不是你想要的答案,但为了完整起见,英特尔优化编译器在Windows、Linux和Mac Intel平台上表现出色。价格有点高,但对于Intel处理器的高度优化编译来说,它是无与伦比的。


如果它是开源的就好了:( 它是一个非常棒的编译器。 - Zifre

2

我认为来自Twilight Dragon MediaTDM-GCC比官方MinGW版本更加方便。我发现安装和使用都更加简单。


1

使用Windows 10,您可以通过Windows Linux子系统使用g++。

设置完成后,使用bash终端安装g++(这篇Ask Ubuntu的答案向您展示如何安装)。

请注意:您只能在Ubuntu/bash环境中运行已编译的C++程序,而不能直接从cmd/PowerShell运行。

C:\Folder> bash
User@Computer:/mnt/c/Folder$ g++ hello_world.cpp -o hello_world
User@Computer:/mnt/c/Folder$ ./hello_world

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接