`

【转】cygwin与MinGW区别

    博客分类:
  • C
 
阅读更多

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环境的安装并编译vlc

    ### Cygwin+MinGW环境下vlc-1.1.11的安装与编译 #### 一、Cygwin环境的安装与配置 ##### 1. Cygwin的安装 - **版本**: 使用Cygwin的新版本(例如20081208版),通过本地安装的方式进行安装。推荐选择“完全安装”...

    cygwin mingw编译的fltk2 library

    标题中的“cygwin mingw编译的fltk2 library”指的是使用Cygwin和MinGW环境编译的FLTK(Fast Light Toolkit)2版本的库。FLTK是一个开源的跨平台GUI工具包,适用于C++编程,它提供了一套简单易用的API来创建图形用户...

    eclipse ndk sdk cygwin cdt mingw 环境变量设置

    环境变量设置的bat文件 根据自己的路径修改几个地方后放在eclipse根目录下 就不用再设置环境变量了

    cygwin-cegcc-mingw32ce-0.51.0-1.part2.rar

    cygwin-cegcc-mingw32ce-0.51.0-1.part2.rar 本人比较懒,就不给向我要的同志们单独发了,想要自己下~~~

    xgboost 已编译 (64位windows下 用mingw64 在 cygwin环境下编译)

    ** Mingw64与Cygwin** 在Windows环境下编译开源项目时,我们经常需要使用交叉编译工具。Mingw64(Minimalist GNU for Windows)是为64位Windows系统提供的一套GNU工具链,它允许开发者在Windows下使用GCC(GNU ...

    cygwin-cegcc-mingw32ce-0.51.0-1.part1.rar

    cygwin-cegcc-mingw32ce-0.51.0-1.part1.rar 本人比较懒,就不给向我要的同志们单独发了,想要自己下~~~

    window下linux环境模拟(MinGW,Cygwin).doc

    MinGW 和 Cygwin 都是模拟 Linux 环境的方式,但它们之间有着很大的区别。MinGW 使用 Windows C 的运行库,避免了 GPL 协议,而 Cygwin 使用了一组基于 GPL 的 DLLs,从而遵守 GPL 协议。开发者可以根据自己的需求...

    cygwin 包含安装插件

    在这里,你可以搜索与插件相关的软件包,比如开发工具、库或者其他特定功能的工具。 4. **安装插件**:找到并勾选你想要安装的插件,安装程序会自动处理依赖关系,确保所有必要的组件都得到安装。 5. **确认并安装...

    MinGW 压缩包 免安装解压直接用

    1. **下载与解压**:首先,从官方或可信的源下载MinGW压缩包,如`MinGW-master.zip`,然后将其解压到一个合适的文件夹,如`C:\MinGW`。 2. **配置环境变量**:为了能在命令行中直接使用MinGW,需要将`bin`目录添加到...

    cegcc_mingw32ce_cygwin1.7

    在Linux下编译wince程序的工具,找了好久才发现。对此有需求的可以使用。

    mingw-get-inst-在线安装

    9. **Cygwin vs MingW**:虽然Cygwin和MingW都是在Windows上提供类Unix环境,但Cygwin提供了一个完整的Posix层,而MingW则更轻量级,仅提供编译工具链。 10. **持续更新**:随着时间的推移,MingW项目不断发展,新...

    完整的Mingw开发环境

    大家使用gcc在windows下开发软件,有两个途径,一、Cygwin,二、Mingw32 Cygwin可以使用autoconf,automake,libtool,libiconv and gettext(I18N/L10N) 进行完整的开发, 但由于Cygwin 封装了一层底层库,所以运行速度...

    MinGW的使用指南.pdf

    **MinGW与Cygwin的区别:** 1. Cygwin模拟了一个完整的Linux环境,而MinGW仅提供编译工具链。 2. Cygwin的程序依赖于Cygwin DLL,而MinGW编译的程序是纯Win32二进制文件,不需要额外的运行时库。 **注意事项:** 1....

    完整的Mingw开发环境5

    大家使用gcc在windows下开发软件,有两个途径,一、Cygwin,二、Mingw32 Cygwin可以使用autoconf,automake,libtool,libiconv and gettext(I18N/L10N) 进行完整的开发, 但由于Cygwin 封装了一层底层库,所以运行速度...

    【Windows】MinGW(mingw-get-setup.zip)

    1. **轻量级**:MinGW不需要完整的Cygwin环境,仅依赖于Windows API,因此它的安装体积相对较小,启动快速,资源占用较低。 2. **兼容性**:MinGW编译的程序可以直接在Windows环境下运行,无需依赖任何额外的DLL...

    mingw64-8.1.0.zip

    然而,需要注意的是,由于MingW64并非完全模拟Linux环境,有些特定的Linux库或功能可能无法直接在MingW64下工作,这时可能需要使用Cygwin或者其他解决方案。 总的来说,MingW64是一个强大的开源工具,对于Windows上...

    ndk+cygwin的种种问题

    - 使用Cygwin的mingw32工具集进行编译,而不是直接使用NDK的交叉编译工具链。 - 使用Docker等容器技术创建一个隔离的Linux环境,避免路径和权限问题。 - 对于库兼容性问题,可能需要寻找适用于Cygwin的替代库,或者...

    mingw-w64-v12.0.0.zip

    MinGW全称Minimalist GNU For Windows,是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。MinGW提供了一套完整的开源编译工具集,以适合Windows平台应用开发,且不...

    MinGW4.4下载

    3. **轻量级**:与完整的 Cygwin 相比,MinGW不需要模拟层,体积更小,安装和使用更加便捷。 4. **动态链接库**:MinGW4.4生成的程序通常依赖于动态链接库(.dll),这些库文件需要与程序一起分发,以确保在目标...

Global site tag (gtag.js) - Google Analytics