Cygwin 和MinGW 的区别与联系

Cygwin,是Cygnus出品,被Red Hat公司收购,名下的项目,目的为提供运行于windows平台的类Unix环境(以GNU工具为代表)。Cygwin提供了抽象层dll,用于将部分POSIX转换为Windows API调用,目录结构照搬Linux。

MinGW,Minimalist GNU for Windows,用于开发原生(32位)Windows应用的开发环境,包括了gcc,g++等工具。

  • MinGW 是让Windows 用户可以用上GNU 工具,比如GCC。
  • Cygwin 提供完整的类Unix 环境,Windows 用户不仅可以使用GNU 工具,理论上Linux 上的程序只要Cygwin 重新编译,就可以在Windows 上运行。
  • 如果程序只用到C/C++ 标准库,可以用MinGW 或Cygwin 编译。
  • 如果程序还用到了POSIX API,则只能用Cygwin 编译。
  • 程序经MinGW 编译后可以直接在Windows 上面运行。
  • 程序经Cygwin 编译后运行,需要依赖安装时附带的cygwin1.dll。

MinGW 提供了一套完整的开源编程工具,适用于开发本地 MS-Windows 应用程序,并且不依赖于任何第三方 C-Runtime DLL。(它确实依赖于微软自己提供的一些 DLL,作为操作系统的组件;其中最著名的是 MSVCRT.DLL,微软的 C 运行库。此外,线程应用程序必须随附一个可免费分发的线程支持 DLL(作为 MinGW 本身的一部分提供)。

Cygwin 是

一个工具集合,为 Windows 提供一个 Linux 外观和感觉的环境。
一个 DLL(cygwin1.dll),作为 Linux API 层,提供大量 Linux API 功能。

那么,它不是一个开发环境吗?当然是。它也有用于编译、调试和 make 的 GCC 工具链。它拥有 Linux 中更完整的实用程序集。那么这两者有什么区别呢?

Cygwin 增加了一个 Linux API 层来模拟 Linux 功能。这也包括 POSIX 标准。而 MinGW 则旨在为 Windows 平台提供本地 GCC 编译器。在实用程序方面,Cygwin 试图为你提供一套最完整的 Linux 功能,而 MinGW 则旨在提供简约的 Linux 感觉。下面我们就来谈谈两者的区别:

Cygwin = 让我们把 unix 放到 windows 上,尽可能多地使用本地 unix 的东西
MingW = 让 unix 尽可能远离 windows,使用尽可能多的本地 windows 资源。

如果您使用 MinGW 编译程序,那么生成的二进制文件就可以发布,而无需依赖任何外部 DLL。而使用 Cygwin 编译的程序则需要 cygwin1.dll 才能运行。不过,Cygwin 支持 POSIX,但 MinGW 却不支持。

上述内容取自MinGW and Cygwin - An Introduction and Differences | electroBucket

进行了适量翻译,不一定翻译的对。

Cygwin Installation

MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.net

两个工具在上面链接。

gcc编译选项可以看:

gcc编译选项-o和-c介绍_gcc -o-CSDN博客

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MSYS2、CygwinMinGW 和 Clang 都是用于在 Windows 系统上编译和运行 Unix/Linux 程序的工具集。 MSYS2 是一个基于 Cygwin 的工具集,它包含了 Cygwin 本身所提供的工具和库,同时也包含了许多其他开源软件的工具和库,例如 Git、Python、Ruby、GCC 等。MSYS2 还提供了一些额外的工具和库,例如 Pacman 包管理器和 MSYS2 系统工具。 Cygwin 是一个用于在 Windows 上模拟 Unix/Linux 环境的工具集,它提供了一个完整的 POSIX 环境,包括了许多 Unix/Linux 工具和库,例如 Bash、GCC、GDB、Emacs 等。 MinGW 是一个基于 Windows 平台的轻量级开发工具集,它允许开发者使用 GCC 编译器和相关工具在 Windows 上编译和运行 C/C++ 程序。与 Cygwin 不同的是,MinGW 不需要模拟 Unix/Linux 环境,它直接在 Windows 上运行,并且生成的可执行文件不依赖于任何运行时库。 Clang 是一个 C/C++/Objective-C 编译器,它支持多种平台,包括 Windows。与 GCC 不同的是,Clang 的编译速度更快,生成的代码更加优化,同时也支持更多的语言特性和标准。 总的来说,MSYS2 和 Cygwin 更加完整和强大,可以提供一个完整的 Unix/Linux 环境,但是相应的也会带来更多的性能损失和依赖问题;MinGW 则更加轻量级,可以直接在 Windows 上运行,但是相应的可能会缺少一些 Unix/Linux 工具和库;而 Clang 则是一种更加优秀的编译器选择,可以在 Windows 上提供更加快速和优化的编译体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

why4000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值