1、使用区别:
cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器。
 cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从boost库的划分中可以看出来端倪,cygwin下的gcc和linux下的gcc完全使用的是相同的Toolsets。
所以完全可以和linux一起同步更新gcc版本,而不用担心问题,并且在cygwin/gcc做的东西(不用win32的)可以无缝的用在linux下,没有任何问题。是在windows下开发linux程序的一个很好的选择。但是在cygwin/gcc下编译出来的程序,在windows执行必须依赖
cygwin1.dll,并且速度有些慢,如果不想依赖这个东西的化,必须在gcc的编译选项中加入-mno-cygwin。加入这个选项其实gcc编译器就会自动的选择在安装cygwin/gcc时安上的mingw,这个mingw就是gcc的一个交叉编译。
 对于mingw作为gcc在
windows上的一个实现,由于不像cygwin的gcc在一个模拟linux上运行,同时相当一部分linux的工具不能够使用,不过现在已经有 Msys这个模拟unix的shell,可以解决很多的问题,不过没有cygwin好用,而cygwin/gcc的no-cygwin选项又依赖于 mingw的支持,所以更新的更慢的,现在只是到3.3.3。在mingw下也是可以升级gcc的,不过需要使用msys。升级方法和在cygwin和
linux下差不多,就不再罗嗦了。不过就我的升级经验来看好像都不太顺利。具体深入的测试,我也没有时间做了。
 也是可以让cygwin的最新安装的gcc支持no-cygwin,需要再做一遍交叉编译,但是我不会做,只好算了,呵呵,也许那一天我把这个搞定,再开一个贴吧。
  根据以上的分析,如果在windows开发linux程序,cygwin是很好的选择。如果你开发的程序不介意有一个cygwin1.dll的话,也是可以选择cygwin的。如果你是想开发windows下的程序,还要必须用gcc的化,mingw是很好的一个选择。但是在windows下有太多的编译器了,bc,vc,intel
c.....。
 顺便说就题外的化,据说gcc4.0.0性能有很大的提升,如果我升级完gcc4后,再编译一把gcc4是不是以后的编译性能会提高很多呢?有机会一定要测试一下了,呵呵。

2、基本区别:
Unix下编译通过的C代码,在win32下编译是不能通过的
,当然Unix 和win32的API都是符合标准C,也就是说,大多数函数调用在unix和win32下是相同的.但是,unix有自己一些独特的API(如fork,spawn,signals,select,sockets等),如果代码中使用了这些API,在win32下当然找不到对应的库.
    但是,这些API的功能在win32中也能实现,也许你已经发现了一个能让window编译Unix风格代码的方法:
    1.修改编译器,让window下的编译器把诸如fork的调用翻译成等价的形式--这就是mingw的做法.

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

cygwin和mingw的区别相关推荐

  1. MinGW CygWin、mingw64-gcc cygwin-gcc区别

    MinGW 与 CygWin 都能让你在 windows 下编译 unix 风格的 C/C++ 代码. MinGW 与 CygWin 的区别 小标题是参考网址(( Back to Windows Wi ...

  2. cygwin和mingw编译软件的疑问

    2019独角兽企业重金招聘Python工程师标准>>> 对于cygwin和mingw的区别已有基本了解.先已有mingw+msys环境,mingw版gcc在mingw官网下载,版本4 ...

  3. cygwin和mingw的比较

    Unix下编译通过的C代码,在win32下编译是不能通过的 ,当然Unix 和win32的API都是符合标准C,也就是说,大多数函数调用在unix和win32下是相同的.但是,unix有自己一些独特的 ...

  4. Cygwin 与 MinGW/MSYS/MSYS2,如何选择?

    什么是Cygwin和MinGW?请看这篇:Msys/MinGW与Cygwin/gcc. 在无法完全转换到Linux系统的前提下,我一直在 Cygwin 下工作,使用全套的Linux移植工具,学习Bas ...

  5. Cygwin 、MSYS、MinGW 的区别与联系是怎样的?

    讲区别联系之前,我们先看一下这几个东东的前世今生. Cygwin,原 Cygnus 出品(已被红帽收购),目前是 RedHat 名下的项目.项目的目的是提供运行于 Windows 平台的类 Unix ...

  6. CygWin、MinGw和Msys的区别

    越来越厌恶CSDN的盈利模式 本文已转移至https://www.cnblogs.com/isky0824/p/12096562.html

  7. Cygwin与minGW

    这几天关注了一下它们, 其实我是不想安装一下vs来编写一些小东西. 本来想写个小exe,于是跑到vs的bin下面把cl与link搞出来,却发现cl还要配置什么的,也不太清楚直接就二个exe与部分dll ...

  8. cygwin git mysql_msysgit和Cygwin git之间的区别?

    编辑(2年后:2014年10月) We now have a light-weight Git for Windows SDK – which is essentially a standard Mi ...

  9. cygwin git mysql,msysgit和Cygwin + git之间的区别?

    What is the difference between msysgit and Cygwin + git? Now I'm using msysgit, but I don't like the ...

最新文章

  1. Exchange 2007 的邮件监控器
  2. STM32的SPI问题。
  3. 远程桌面连接出现身份验证错误。 要求的函数不受支持,这可能是由于 CredSSP 加密 Oracle 修正。...
  4. 《编程之美》读书笔记(十):“链表相交”扩展问题
  5. javascript对象包含哪些要素_javascript有哪几种对象?
  6. Web前端开发面试考点指南
  7. C++ 标准库之cctype
  8. python字典添加数组_一步一步学Python3(小学生也适用) 第十三篇: 字典Dict类型
  9. allow control allow origin_Origin绘图笔记(一)——如何高效绘制一个漂亮的数据图...
  10. VirtualBox基础使用
  11. w ndows10电脑配置看哪里,win10对电脑配置要求及如何查看电脑配置
  12. SecureCRT 连接ubuntu操作系统(解决Ubuntu密钥交换失败的问题)
  13. VS2017好用的插件推荐
  14. 生物信息学biojava|从本地读取并解析遍历genbank文件|从genbank中提取CDS等注释信息
  15. 如何清除Edge浏览器的360导航、谷歌上123导航
  16. Linux课程设计每日小结
  17. html如何制作正方体手工图,数学手工立体图形
  18. 对于幸福不是悖论的证明,在现代对于幸福探寻
  19. cmake取消宏定义_CMake基本使用
  20. Excel引用函数(1):FORMULATEXT,取得单元格公式内容

热门文章

  1. 微信小程序 客服功能 客服消息
  2. matlab impyramid,图像 – Matlab impyramid问题
  3. centos 如何登陆mysql_CentOS 配置MySQL允许远程登录
  4. 用户画像标签维度_一文看懂用户画像标签体系(包括维度、应用场景)
  5. JAVA8 ARRAY、LIST操作 汇【5】)- JAVA8 LAMBDA LIST统计(求和、最大、最小、平均)
  6. svn redis和rabbitmq服务启动
  7. VS2010主题设置及插件推荐
  8. 二层环路保护,RRPP多环的配置
  9. web程序入门五(http无状态)
  10. .NET CORE在ubuntu1604上运行