7

我想在 Windows 中为 Eclipse IDE 安装 GCC 编译器。我知道有两种选择:MinGW GCC 或 Cygwin GCC。哪个更适合 Eclipse CDT?任何经验或建议将不胜感激。

4

5 回答 5

10

使用 Cygwin 意味着您的程序将依赖于cygwin1.dll,它本质上是一个允许 POSIX 功能在 Windows 环境中使用的层。使用标准 MinGW GCC 编译不提供这种依赖性。但是,这意味着,如果您打算使用 MinGW GCC 进行编译,您将无法访问 POSIX 函数,例如fork()exec()

有关 Cygwin 和 MinGW 之间差异的更多信息,请参见此处

于 2012-11-21T23:12:51.637 回答
2

我的临时想法是,如果你需要 cygwin,你就需要它。例如编译为 Unix 开发并在构建系统中具有符号链接和 shell 脚本的程序。

如果你不需要它,你就不要它。并且在虚拟机上在 linux 下编译通常是比走 cygwin 路线更好的选择。

所以mingw完全没问题。工作正常,使用简单。

另外:您可能会考虑使用 codelite (www.codelite.org) 而不是 Eclipse。

于 2012-11-21T23:59:15.563 回答
2

我个人更喜欢 Cygwin,它有很多安装选项,感觉很像你在 Linux 机器上找到的终端。它提供了一组相当丰富的类似 Linux 的功能,而 Windows 却惨遭失败。

于 2012-11-21T23:12:48.187 回答
1

Cygwin and Mingw are not interchangeable alternatives. Cygwin is used to compile POSIX API programs, Mingw is used compile Windows API programs.

Chose one or the other depending on what kind program you're going to write.

于 2012-11-21T23:19:31.760 回答
1

维基百科说:

MinGW从 1.3.3 版分叉而来Cygwin。尽管两者CygwinMinGW都可以用于将UNIX软件移植到Windows,但它们有不同的方法:Cygwin旨在提供一个完整POSIX layer的,提供对存在于LinuxUNIXBSD变体上的多个系统调用和库的模拟。POSIX layer运行在 之上,Windows在必要时牺牲性能以实现兼容性。因此,这种方法要求Windows用 编写的程序Cygwin在必须与程序一起分发的 copyleft 兼容库之上运行,以及程序的source code. MinGW旨在通过直接提供本机功能和性能Windows API calls。不同于Cygwin,MinGW不需要兼容层DLL,因此程序不需要与source code.

因为MinGW是依赖Windows API calls,它不能提供一个完整的POSIX API;它无法编译一些UNIX applications可以用Cygwin. 具体来说,这适用于需要POSIX类似 的功能的应用程序fork()mmap()或者ioctl()那些期望在POSIX environment. 使用cross-platform library本身已被移植到的应用程序MinGW,例如SDL, wxWidgets,QtGTK+, 通常会像MinGWCygwin.

MinGW两者的结合MSYS提供了一个小型、独立的环境,可以将其加载到可移动媒体上,而无需在注册表或计算机上的文件中留下条目。CygwinPortable 提供了类似的功能。通过提供更多功能,Cygwin安装和维护变得更加复杂。

也可以cross-compile Windows applicationsMinGW-GCC under POSIX systems. 这意味着开发人员无需安装 WindowsMSYS即可编译Windows无需Cygwin.

于 2013-10-05T15:33:50.587 回答