cygwin是什么?它是做什么的

cygwin是什么?它是做什么的,cygwin,mingw,msys,Cygwin,Mingw,Msys,在搜索之后,我发现了一些信息(但让我感到困惑) Cygwin是一个类似于Unix的环境,是Microsoft Windows的命令行界面 我在维基百科上找到了这一行,但这是什么意思? 关于MinGW、cygwin和msys,我不太清楚,请或多或少地从它的 西格温是 windows API之上的POSIX兼容层。这主要封装在cygwin1.dll中 使用此dll编译的开放源代码软件的分发系统和存储库 简而言之,如果您有linux源代码,您可以尝试重新编译cygwin,并能够在windows上运行它

在搜索之后,我发现了一些信息(但让我感到困惑)

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

我在维基百科上找到了这一行,但这是什么意思? 关于MinGW、cygwin和msys,我不太清楚,请或多或少地从它的

西格温是

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

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

    备选方案包括:

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

      • 因为它总是让人困惑:

      • Cygwin:把它想象成一个操作系统。它提供了一个构建在Windows之上的POSIX C运行时,因此您可以编译大多数Unix软件以在其之上运行。它随GCC一起提供,在某种程度上,您可以从Cygwin中调用Win32 API,尽管我不确定这是否会发生或起作用

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

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


      • 请注意,在Cygwin上运行的是MinGW-w64交叉编译器。对于MSYS2,坦率地说,我认为没有理由这么做。如果要使用Cygwin,不妨在Linux上运行VM。

        使用Cygwin,您可以在windows中模拟linuk shell,因此您可以在windows中使用类似于
        make
        的命令;-)它按照tin上的说明执行:在Windows上为您提供一个类似Unix的环境。您得到的不是通常的DOS CMD窗口,而是bash shell和所有常用的*nix工具。它很容易安装和试用-它工作得很好,不会破坏你的Windows环境。这就像我有一个Windows的源代码。。。然后我可以在linux上运行它,如果我使用cygwin?@Ario编译它,更像是相反的。。。如果您有linux源代码,您可以重新编译它(相当成功)以在Windows上运行MingW是一些在Windows上运行的GNU开发工具(主要是GCC)的端口。它编译为Windows编写的代码,以便在Windows上运行。它不允许您编译特定于POSIX的代码。您是说Cygwin类似于终端仿真器,还是类似于windows内核上的外壳,或者以上任何一种都不一样?不,Cygwin更像是一个没有内核的GNU操作系统,位于windows之上。MSYS(2)更像是shell。没有内核的操作系统和没有GUI的shell有什么区别?@JFA用户空间库和实用程序。外壳是后者的一部分。MSYS(2)忽略了大多数低级库(对于GNU/Linux和Cygwin,这些库包括一个POSIX libc)。至于GUI,Cygwin能够运行X服务器,而这根本不是MSYS的目标或用途(2)。