千家信息网

mingw和cygwin区别

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,minGW与cygwin==========================首先MingW和cygwin都可以用来跨平台开发。MinGW是Minimalistic GNU for Windows的缩写
千家信息网最后更新 2026年11月01日mingw和cygwin区别


minGW与cygwin

==========================

首先MingW和cygwin都可以用来跨平台开发。

MinGW是Minimalistic GNU for Windows的缩写,也就是Win版的 精简的GCC 。

MinGW 收集了一系列免费的Windows 使用的头文件和库文件;同时整合了GNU( http://www.gnu.org/ )的工具集,特别是GNU 程序开发工具,如经典gcc, g++, make等。

Microsoft的有一套unix的子系统的开发环境,不过只是一个posix子集,linux的许多函数不能用,当然fork没问题。


Cygwin则是 全面模拟 了Linux的接口,提供给运行在它上面的的程序使用,并提供了大量现成的软件,更像是一个平台。

相对的MingW也有一个叫MSYS(Minimal system)的子项目,主要是提供了一个模拟Linux的Shell和一些基本的Linux工具。因为编译一个大型程序,光靠一个GCC是不够的,还需要有Autoconf等工具来配置项目,所以一般在Windows下编译Linux下的大型项目都是通过MSYS来完成的,当然MSYS只是一个辅助环境,根本的工作还是MingW来做的。



用MingW和cygwin编译出来的程序的区别

===================================

首先,MingW和cygwin都不能让Linux下的程序直接运行在Windows上,必需通过源代码重新编译。

现代操作系统包括Windows和Linux的基本设计概念像进程线程地址空间虚拟内存这些都是大同小异的,之所以二者上的程序不能兼容,主要是它们对这些功能具体实现上的差异,

首先是可执行文件的格式,Window使用PE的格式,并且要求以.EXE为后缀名。Linux则使用ELF。

其次,操作系统的API也不一样,如Windows用CreateProcess()创建进程,而Linux使用fork()。


所以要移植程序必然要在这些地方进行改变,


MinGW的方案:

来把代码中Linux下的系统调用API直接 替换 修改成对应的Windows下的API。所以生成的执行文件已经 看不到linux的系统调用api 。


Cygwin方案:

Cygwin通过 cygwin1.dll 这个动态库 实现两个平台API的转换 。Cygwin生成的程序依然有fork()这样的Linux系统调用API, 只不过在cygwin1.dll实现到Windows功能的转换。

用Mingw编译的程序性能会高一点,而且也不用带着那个接近两兆的cygwin1.dll文件。


【综上所述】

1.修改编译器,让window下的编译器把诸如fork的调用翻译成等价的形式--这就是mingw的做法.

2.修改库,让window提供一个类似unix提供的库,他们对程序的接口如同unix一样,而这些库,当然是由win32的API实现的--这就是cygwin的做法.


程序 编译 系统 工具 文件 开发 操作系统 做法 功能 只是 就是 平台 接口 方案 格式 环境 编译器 进程 项目 生成 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网巨头反垄断金融科技 互联网科技的 中国互联网科技发展 北京互联网络科技有限公司 银优互联网科技有限公司 万达互联网科技 滨湖区互联网智能科技产品供应 移动互联网科技股 互联网科技项目计划书材料类 崇明区互联网教育科技诚信经营 互联网科技如何创业 工业互联网展湾科技股份有限公司 众安科技工业互联网合作 上海京穆互联网科技有限公司 智帮互联网科技公司最近动向 江苏苏星互联网科技有限公司 电子商务与互联网科技的关系 卡尔迅互联网科技有限公司 求路客互联网科技电话 陕西彩京云互联网科技有限公司 华服互联网科技靠谱吗 盈实互联网科技 北京互联网科技 深圳天众互联网科技公司 辽宁互联网新科技 扫呗互联网科技有限公司 江苏互联网智能科技产品出厂价 马化腾互联网科技教学 恒生科技指数 中概互联网 现代科技的标志之一的互联网
0