计算器的功能键说明:比较MingW与Cygwin(搜集) - 姚中凯的日志 - 网易博客

来源:百度文库 编辑:九乡新闻网 时间:2024/05/01 16:39:04

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的做法.

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

MinGW相比CygWin/gcc来讲,更加贴近win32。因为它几乎支持所有的Win32API。它所连接的程序,不需要任何第三方库即可运行。
CygWin/gcc,其实这是两个东西。CygWin是一个让Windows拥有Unix-like环境的软件。而gcc就是安装在CygWin上的编译器。
CygWin/gcc与MinGW的最大区别在于:使用CygWin/gcc可以在Windows下调用unix-like的API,(如fork,spawn,signals,select,sockets等)。也就是说Cygwin是运行在Windows下的,但是她使用的是Unix-like系统的函数和思想。由于这个区别,导致的结果就是用CygWin/gcc编译出来的程序可以无缝的运行在*nix环境下。但是如果调用了unix特有的API函数,在windows环境下不能正常运行,如果想在windows下正常运行的,就必须依赖cygwin1.dll,速度上会有些影响。
而用MinGW编译出来的程序,如果源代码里面调用了unix环境的API,则MinGW会把这些对UNIX的API调用翻译成win32下等价的形式。同时这个程序是不能在linux下运行的。
说白了,如果你是想在windows环境下开发linux运行程序,那么CygWin/gcc是你的不二之选。
而如果你想开发的是windows运行程序,并且追求速度,那么二者相比而言,MinGW是更好的选择

 

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

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是不是以后的编译性能会提高很多呢?有机会一定要测试一下了,呵呵。
 
 一个技巧:如何知道当前版本的gcc的安装配置,用命令:gcc -v就可以了,呵呵。
比较MingW与Cygwin(搜集) - 姚中凯的日志 - 网易博客 编织相册搜集 - 梅兰竹菊的日志 - 网易博客 引用 王顺金《主流财务软件利润表的编制与比较》 - dayu的日志 - 网易博客 引用 会计制度与税法的差异比较及协调 - 漫云的日志 - 网易博客 引用 新版人民币与第五套人民币比较(先睹为快) - 小金牛的日志 - 网易博客 新版人民币与第五套人民币比较(先睹为快) - 小金牛的日志 - 网易博客 【引用】各种茶叶的功效,千万不要喝错,精心搜集 - 山中客的日志 - 网易博客 常用函数公式及技巧搜集 - 道夫的日志 - 网易博客 引用 比较常用的博客音画代码 - 温柔女侠的日志 - 网易博客 引用 我搜集的可用在首页的6个动画代码 - 温柔女侠的日志 - 网易博客 了不起的文化现象 南北画家村比较分析 - 画家安君康的日志 - 网易博客 引用 日常生活中比较常见的风水大忌 - 端木秀禾的日志 - 网易博客 引用 一个比较好的选股公式 - 红森林的日志 - 网易博客 十年袁大头中比较少见三个的版别 - 醉听松涛的日志 - 网易博客 国外比较乱套 国内阳光普照 - 带头大哥777的日志 - 网易博客 国外比较乱套 国内阳光普照 - 带头大哥777的日志 - 网易博客 比较欣赏这些花边衣教程1 - 红阳聚宝的日志 - 网易博客 “活法”与“寻道” - 悠远的天空的日志 - 网易博客 老子与孔子的临别赠言 - 鸟语花香的日志 - 网易博客 书法的疾与涩 - 墨墨无语的日志 - 网易博客 摄影构图与黄金分割 - 阿帆人的日志 - 网易博客 自由与责任--韩德强 - 刘姥姥的日志 - 网易博客 施瓦辛格与官员工资 - 刘仰的日志 - 网易博客 敬重与惜别 - 潘采夫的日志 - 网易博客