windows - Cygwin和MinGW有什么区别?(MinGW从Cygwin 1.3.3版本中分离出来)

来源:http://www.guanqinbiaoye.com 作者:计算机操作 人气:162 发布时间:2020-03-16
摘要:Cygwin 3.1.0 发布了, Cygwin 是许多自由软件的集合,最初由CygnusSolutions开发,用于各种版本的MicrosoftWindows上,运行UNIX类系统。Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、

Cygwin 3.1.0 发布了,Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于各种版本的Microsoft Windows上,运行UNIX类系统。Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、BSD,以及其他Unix系统)上的软件移植到Windows上。Cygwin移植工作在Windows NT、Windows 2000、Windows XP以及Windows Server 2003上比较好,在Windows 95和Windows 98上,相对差劲一些。目前Cygwin由Red Hat等负责维护。

我想让我的C ++项目跨平台,我正在考虑使用Cygwin / MinGW。 但是他们之间有什么区别呢?

新版本包括:

另一个问题是,如果没有Cygwin / MinGW,我能否在系统上运行二进制文件?

* cygwin-3.1.0-1
* cygwin-devel-3.1.0-1
* cygwin-doc-3.1.0-1

 Answers


Cygwin是尝试在Windows上创建一个完整的UNIX / POSIX环境。 要做到这一点,它使用各种DLL。 虽然这些DLL被GPLv3 +覆盖,但是它们的许可证包含一个异常 ,不会强制派生的工作被GPLv3 +覆盖。 MinGW是一个C / C ++编译器套件,它允许您创建Windows可执行文件而不依赖于这样的DLL - 您只需要普通的MSVC运行时,这是Microsoft Windows正常安装的一部分。

你也可以得到一个小的UNIX / POSIX环境,用MinGW编译成MSYS 。 它没有Cygwin的所有功能,但对于想要使用MinGW的程序员来说是非常理想的。

作为一个简化,就是这样的:

  • 在Cygwin中编译一些东西,然后编译Cygwin 。

  • 编译MinGW中的东西,你正在为Windows编译它。

关于Cygwin

Cygwin的目的是通过模拟许多基于Unix的操作系统提供的小细节,并通过POSIX标准来记录,使得基于nix的应用程序更容易移植到Windows上。 如果您的应用程序假定它可以使用Unix功能,例如管道,Unix风格的文件和目录访问等等,那么您可以在Cygwin中编译它,而Cygwin本身将作为您的应用程序的兼容层 ,这些特定于Unix的范例可以继续使用,对应用程序进行很少或不需要修改。

如果你想为Cygwin编译一些东西并分发这个应用程序,那么你还必须将Cygwin运行时环境(由cygwin1.dll提供)与它一起cygwin1.dll , 这对你可能使用哪种类型的软件许可有影响 。

关于MinGW

MinGW是GNU编译器工具的Windows端口,例如GCC,Make,Bash等等。 它不会试图模拟或提供与Unix的全面兼容性,而是提供在Windows上使用GCC(GNU编译器)和少量其他工具的最低必要环境。 它没有像Cygwin一样的Unix仿真层,但是结果是你的应用程序需要特别的编程才能在Windows上运行,这可能意味着如果它被创建为依赖于在标准Unix环境中运行,使用Unix特有的功能,比如前面提到的功能。 默认情况下,在MinGW的GCC中编译的代码将编译为本机Windows X86目标,包括.exe和.dll文件,但是也可以使用正确的设置进行交叉编译。 MinGW是Microsoft Visual C ++编译器及其关联的链接/制作工具的开源替代品。

本文由威尼斯游戏网站发布于计算机操作,转载请注明出处:windows - Cygwin和MinGW有什么区别?(MinGW从Cygwin 1.3.3版本中分离出来)

关键词:

最火资讯