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
++编译器及其关联的链接/制作工具的开源替代品。

网站地图xml地图