gcc、g++、cygwin和wingw之间的关系是什么?

8

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

3个回答

6

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

MinGW是“Minimalist Gnu for Windows”的缩写。它是gnu编译器在Windows上的移植版本。

Cygwin是gnu编译器(以及各种其他实用工具)在Windows上的另一个移植版本。更准确地说(我的想法),它是将编译器/程序保留在POSIX上,并将POSIX层移植到Windows上运行。

至于选择哪个:如果您正在运行Linux,则可能希望获取适用于您所使用的发行版的gcc/g++软件包。

如果您正在运行Windows,则取决于您的意图。Cygwin非常适合将现有的Linux/POSIX代码移植到Windows上。然而,如果您计划编写代码并只需要一个编译器,则我会选择MinGW。

还有一点需要注意的是:MinGW.org上的MinGW已经多年没有更新了。如果您决定使用MinGW,我建议从nuwen.net获取它(它被频繁更新)。


2
  1. gcc将编译:.c/ .cpp文件分别作为C和C++处理。
  2. g++将编译:.c/ .cpp文件,但它们都将被视为C++文件。
  3. 如果使用g++链接对象文件,则会自动链接标准C++库(gcc不会这样做)。
  4. gcc编译C文件时具有较少的预定义宏。

对于Wingw,您是指Mingw吗?因为MinGW是为了与Windows兼容而设计的。 MinGW使用GCC / G ++,而MinGW不是编译器,它基本上是一个削减版本的Cygwin,尽可能使用MS libs。


1

取决于你正在构建什么;

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

我没有听说过 wingw。


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