linux - GNUWin32 和 cygwin 的区别

标签 linux cygwin msysgit msys gnuwin32

我似乎无法理解两者之间的区别。

似乎一个 (GNUWin32) 是在 windows 之上的一层(如 MSYS)和
其他(cygwin)是别的东西(?)

这是什么意思?我什么时候会用一个而不是另一个?他们都适合做同样的事情吗?

我想主要将它用于 git,但我想保留我的选择以学习和做所有 *nixy 的事情。

还有其他工具吗? msysgit 会更适合这个吗?
是否有任何资源详尽地介绍了所有这些 *nix 平台的差异?

最佳答案

Cygwin是一个致力于使 UNIX 程序能够在 Windows 系统上编译和运行的库,只需最少的修改或无需修改,以及一套全面的打包 UNIX 工具和使用该库编译的应用程序。它几乎是 Windows 的完整包装器。它包括一个 X 服务器和大量您可以在 Linux 发行版中找到的程序。它非常适合想要在 Windows 中学习或使用 UNIX 命令行的人。

MSYS主要是在带有 MinGW 的 Windows 系统上构建 GNU 样式包(使用 configure 等)所必需的 UNIX 工具的端口编译器。它使用经过修改的 Cygwin 库的变体以牺牲一些兼容性来提高效率,并且对 Windows 更友好。

GnuWin32只是一些 GNU 工具到 Windows 的端口。与 MSYS 一样,它使用 msvcrt.dll,以及一个额外的库来提供一些 UNIX 兼容性功能。它的主要目的似乎是允许 Windows 程序和批处理文件直接使用一些 GNU 程序和库。

在大多数情况下,它们都在 Windows 上提供 UNIX 程序,但也存在许多细微差别,包括:

  • 意图。 Cygwin 适用于希望在 Windows 操作系统上使用 UNIX 的人。 MSYS 适用于想要使用 GNU/UNIX 构建工具构建 Windows 程序的人。 GnuWin32 是单个 GNU 程序和库到 Windows 的端口。
  • 文本文件,尤其是行尾。 Cygwin 允许您使用 CR/LF 或 LF。 MSYS 需要 LF 行结尾。 GnuWin32 程序需要 CR/LF 行结尾。
  • 提供的程序。特别是,Cygwin 有更多的包,而 GnuWin32 不提供任何 shell。

至于 git,它可用于 Cygwin - 此版本可在 Windows 目录中使用(可在 /cygdrive 下访问)。另外,如前所述,有 msysgit .

关于linux - GNUWin32 和 cygwin 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10712550/

相关文章:

linux - 当另一个文件中不存在文本时,使用 grep 进行过滤以打印

git init 错误 : unable to create directory for . git/HEAD [inside htdocs/]

windows - MSysGit 与 Git for Windows

c - '*' 的类型参数无效(有 'double' )C

android-ndk - Android 命名空间的 ndk 构建错误

c++ - 使用 cygwin 编译 C++ 不搜索提供的包含路径

git - 'X' 似乎不是 git 存储库(我确定路径是正确的)

java - 如何使用 Java 获取正在运行的进程列表

linux - 如何从输出中获取每个字符串(主机名)?

Linux 文件日志