Cygwin 和MinGW 的区别与联系

编程入门 行业动态 更新时间:2024-10-19 04:22:52

Cygwin 和MinGW 的<a href=https://www.elefans.com/category/jswz/34/1769972.html style=区别与联系"/>

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

两个工具在上面链接。

gcc编译选项可以看:

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

更多推荐

Cygwin 和MinGW 的区别与联系

本文发布于:2023-11-16 01:26:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1611105.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:区别   Cygwin   MinGW

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!