
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,速度上会有些影响。
说白了,如果你是想在windows环境下开发linux运行程序,那么CygWin/gcc是你的不二之选。
而如果你想开发的是windows运行程序,并且追求速度,那么扮旁二者相比而言,MinGW是更好的选择
MinGW
是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。详情请参考<http://www.mingw.org>。
这里的“纯粹”是指「使用msvcrt.dll的应用程序」。无法使用MFC (Microsoft Foundation Classes)。
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时库。
MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC(GNU Compiler C)产生 Windows32 程序。
在基本层,MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95 发行版以上的 Windows OS 有效,使用基本运行时间,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时间扩展。该功能是 Windows32 API 不具备的。下一个组成部分是 w32api 包,它是一组可以使用 Windows32 API 的包含文件和端口库。与基本运行时间相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 Windows32 API 功能。
MinGW 官方网站为 http://www.mingw.org
实际上 MinGW 并不是一个 C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。
开缺信发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) *** 作系统而留在 Windows 的人(比如我)提供一套符合 GNU 的 GNU 工作环境。
(此前的 cygwin 虽然也是 GNU 的 Windows 移植,但是 cygwin 是有版权的,而不是 GNU。)
所以,使用 MinGW 我们就可以像在 Linux 下一样使用 GNU 程序开发工具。
GCC 就是 MinGW 的核心所在,GCC 是一套支持众多计算机程序语言的编译系统,而且在语言标准的实现上是最接近于标准的。并且 GCC 几乎可以移植到目前所有可用的计算机平台。(我的电脑上就还装有 DevKitPro,里面包含 GCC 的 ARM(for GBA/DS/GP32) 和 MIPS(for PSP) 版本。)
GCC 本身不像 VC 那样拥有 IDE 界面(在 Windows 上也存在 Dev C++ 之类的支持 MinGW 编译器的 IDE)。源代码编辑你可以选用任何你喜欢的文本编辑器(据说微软的开发人员包括 VC 的开发都不用 VC 所带的 IDE 编辑器,而是选用 GNU 的 VIM 编辑器)。然后使用 make 等工具来进行软件项目的编译、链接、打包乃至发布。而像 cvs(svn) 源代码版本控制工具可以让世界上任何一个角落的人都可以参与到软件项目中来。
关于 MFC,微软基础库类,这个随 VC++ 携带的一个源代码公开的开发包,和其他 Windows 程序开发包是一样的。如果有 VC++ 的授权,你完全可以使用 MFC 的源代码,也就是你使用 GCC 来编译 MFC 程序是完全可以的。
当然,GNU 下也很多 Windows 程序开发包,甚至有一些是支持跨平台使用的。不仅仅可以直接把源代码编译为 Windows 程序,也可以不经修改编译为其他 *** 作系统的图形程序。
不过 GNU 下,最流行的图形界面开发库是 GTK+。GTK+ 也能很好的运行在 Windows 平台(比如 GIMP 和 Gaim)。
总体说来,使用 MinGW 就是 GNU。
--------------------------------------------------------------
cygwin
是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收 购)。它对于学习unix/linux *** 作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在 windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。
cygnus当初首先把gcc,gdb,gas等开发工具进行了改进,使他们能够生成并解释win32的目标文件。然后,他们要把这些工具移植到 windows平台上去。一种方案是基于win32 api对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,他们采取了一种不同的方法——他们写了一个共享库(就是cygwin dll),把win32 api中没有的unix风格的调用(如fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于 win32 api写了一个unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用unix主机上的交叉编译器来生成可以在 windows平台上运行的工具集。以这些移植到windows平台上的开发工具为基础,cygnus又逐步把其他的工具(几乎不需要对源代码进行修改, 只需要修改他们的配置脚本)软件移植到windows上来。这样,在windows平台上运行bash和开发工具、用户工具,感觉好像在unix上工作。
注:
VM是虚拟多个,而Cygwin是同时使用Windows和UNIX。
安装教程:
本版本是基于官方的在线下载安装方式,请确认电脑可以正常联搜旅网。
1、首先下载cygwin的安装包程序,解压打开,里面小编已经打包了32和64位两个版本,朋友们可以根据自己的系统位数来选择!运行setup.exe程序,出现安装画面,如图所示:
2、点击“下一步”,我们可以看到有三个选项,分别代表了三种安装模式:(我们选择第一种,直接从网上安装)
Install from Internet,这种模式直接从Internet安装,适合网速较快的情况做漏伏;
Download Without Installing,这种模式只从网上下载安装文件,但不安装;
Install from Local Directory,这种模式与上面第二种模式对应,当你的安装包已经下载到本地,则可以使用此模式从本地安装。
3、指定安装目录和权限,一般默认即可(注意:目录不可为中文字符)
4、设定安装包存放本地路径
5、选择连接方式,第一个(默认)即可,【下一步】
6、选择下载站点的对话框。
7、正在下载数据,请耐心等待。。。。。
8、这里我们需要选择下载安装的组件包,为了使我们安装的Cygwin能够编译程序,我们需要安装gcc编译器(默认情况下,gcc并不会被安装,我们需要选中它来安装)。为了安装gcc,我们用鼠标点开组件列表中的“Devel”分支,在该分支下,有很多组件, 我们必须的是:
binutils
gcc-core
gcc-g++
gcc-mingw-core
gcc-mingw-g++
gdb
9、选好后【下一步】,会显示你选择的安装包:
10、完成之后我们选择【下一步】,进入下载安装过程,如下图所示:(选择的组件越多,下载安装的时间就越长)
11、选择是否添加桌面快捷方式和系统菜单栏显示
12、至此安装已经全部完成了,我们通过双击桌面图标来启动Cygwin里的Bash,或者你可将C:/Cygwin/bin加到%PATH%当中,您就可以直接在cmd.exe里面使用Linux命令了,比如less,cat, wc , wget等,如果您有一个Bash脚本,您也可以直接用C:/Cygwin/bin/bash.exe X:/scripts/Monitor.sh的形式进行调用。
13、现在可以在windows中使用unix命令了,例如,试一下 ls -a(注意:“ls”纯携与“-”之间有一个空格)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)