关于eclipse:MinGW或Cygwin GCC?

MinGW or Cygwin GCC?

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


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

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


维基百科说:

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

因为MinGW依赖于Windows API calls,所以它不能提供完整的POSIX API。它无法编译可以用Cygwin编译的某些UNIX applications。具体地说,这适用于需要POSIX功能(例如fork()mmap()ioctl())的应用程序,以及希望在POSIX environment中运行的应用程序。使用本身已移植到MinGWcross-platform library编写的应用程序,例如SDLwxWidgetsQtGTK+,通常在MinGW中的编译就像在MinGW中一样容易。 x4>。

MinGWMSYS的组合提供了一个小型的独立环境,可以将其加载到可移动介质上,而无需在注册表中保留条目或在计算机上保留文件。 Cygwin Portable提供了类似的功能。通过提供更多功能,Cygwin的安装和维护变得更加复杂。

cross-compile Windows applicationsMinGW-GCC under POSIX systems也可以。这意味着开发人员不需要在Windows上安装MSYS即可编译将在Windows上运行而没有Cygwin的软件。


我个人更喜欢Cygwin,它具有很多安装选项,并且感觉很像您在Linux机器上可以找到的终端。它提供了相当大量的类似于Linux的功能,而Windows却在此方面失败了。


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

如果您不需要它,则不需要它。与使用cygwin路由相比,在Linux上的虚拟机上进行编译通常是更好的选择。

所以mingw很好。效果很好,易于使用。

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


Cygwin和Mingw不能互换。 Cygwin用于编译POSIX API程序,Mingw用于编译Windows API程序。

根据要编写的程序类型选择一个或另一个。