gcc、g++、cygwin 和 mingw 之间的关系?

Relationship between gcc, g++, cygwin, and wingw?

我知道我的 class,我必须安装 cygwin 才能获得我的 Netbeans IDE 运行,但我在安装过程中看到了 g++ 和 gcc 的选项,但我不是确定它们是否相同,wingw 在哪里?它是另一个编译器吗?如果是,为什么选择 on 而不是另一个?

取决于您正在构建什么;

  • gcc 适用于 C 程序。
  • g++ 适用于 C++ 程序。

没听说过wingw

  1. gcc 将编译:.c/.cpp 文件分别为 C 和 C++。
  2. g++ 将编译:.c/.cpp 文件,但它们都将被视为 C++ 文件。
  3. 此外,如果您使用 g++ link 目标文件,它会自动归档 links 在标准 C++ 库中(gcc 不这样做)。
  4. gcc 编译 C 文件的预定义宏较少。

wingw,你说的是mingw吗?因为MinGW是为了兼容Windows。 MinGW 使用 GCC/G++,而 MinGW 不是编译器,它基本上是 Cygwin 的精简版本,尽可能使用 MS 库。

g++ 和 gcc 分别是 gnu C++ 和 C 编译器。尽管它们实际上是具有不同标志的相同编译器。

MinGW 是 "Minimalist Gnu for Windows"。它是 Windows 上 运行 的 gnu 编译器端口。

Cygwin 是 Windows 的 gnu 编译器(以及各种其他实用程序)的另一个端口。更准确地说(IMO,无论如何),它将 compiler/programs 运行ning 留在 POSIX 上,并将 POSIX 层移植到 Windows 上的 运行 .

至于在它们之间进行选择:如果您运行宁Linux,您可能只想为您正在使用的发行版获取一个gcc/g++包.

如果您运行宁Windows,这将取决于您的意图。 Cygwin 可以很好地将现有 Linux/POSIX 代码移植到 Windows。但是,如果您打算编写代码,并且只需要一个编译器,我会选择 MinGW。

另外一个注意事项:MinGW.org 的 MinGW 多年未更新。如果您决定使用 MinGW,我建议您改为从 nuwen.net 获取它(它定期更新 相当 )。