什么是cygwin,它做了什么

Ari*_*rio 14 cygwin mingw msys

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

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

我在维基百科上找到了上面这行,但这是什么意思?我对MinGW,cygwin和msys没有一个清晰的认识,请帮忙

rub*_*nvb 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生成本机代码.

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


jsa*_*der 5

或多或少来自其网页

cygwin 是

  1. Windows API 之上的 POSIX 兼容层。这个主要封装在一个cygwin1.dll中
  2. 使用此 dll 编译的开源软件的分发系统和存储库。

简而言之,如果你有linux源代码,你可以尝试为cygwin重新编译并能够在windows上运行它......

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

替代方案是:

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