什么是cygwin,它做了什么

时间:2014-03-28 08:17:16

标签: cygwin mingw msys

在搜索之后我找到了一些信息(但对我来说很困惑)

  

Cygwin是一个类似Unix的环境和Microsoft Windows命令行界面。

我在维基百科上找到了上述这一行,但这是什么意思? 我对MinGW,cygwin和msys没有明确的想法,请帮助

2 个答案:

答案 0 :(得分:14)

因为它让人们感到困惑:

  1. Cygwin:把它想象成一个操作系统。它提供了一个基于Windows构建的POSIX C运行时,因此您可以编译大多数Unix软件以在其上运行。它带有GCC,在某种程度上,你可以从Cygwin中调用Win32 API,虽然我不确定它是否会发生或根本不起作用。

  2. MSYS(2):Cygwin的一个分支,它具有路径转换魔法,使本机Windows程序可以很好地与它一起工作。它的主要目标是提供一个shell,以便您可以运行autotools配置脚本​​。您根本不打算构建MSYS应用程序。请注意,MSYS2需要更多功能,并且包含一个完整的软件包管理系统,因此您可以轻松安装MinGW-w64库和工具。

  3. MinGW(-w64):GCC编译器的本机Windows端口,包括Win32 API头文件和库。它包含一个小的POSIX兼容层(通过例如winpthreads,unistd.h头和其他一些位),但是你不能用这个编译POSIX软件。与MSVC相比,这是最好的,MSVC也使用Win32 API生成本机代码。

  4. 请注意,在Cygwin上运行的MinGW-w64交叉编译器。有了MSYS2,我坦率地没有看到这样做的充分理由。如果您打算使用Cygwin,也可以使用Linux运行VM。

答案 1 :(得分:3)

或多或少来自web page

cygwin是

  1. 在Windows API之上的POSIX兼容层。这主要是封装在cygwin1.dll
  2. 使用此dll编译的开源软件的分发系统和存储库。
  3. 简而言之,如果你有一个linux源码,你可以尝试重新编译cygwin并能够在windows上运行它......

    这使得可以访问许多典型的unix命令(shell,gcc / g ++,find ....)

    替代方案是:

    • MSYS:是一组在windows中实现的典型unix命令。
    • mingw:能够生成win32程序的gcc / g ++目标(请注意,cygwin gcc / g ++程序将依赖于mingw程序不具备的cygwin1.dll。)