Windows系统中如何安装并配置MinGW
我们在Windows系统中运行C文件的前提是系统已经安装并配置了MinGW环境。那么该如何在Windows系统中安装并配置MinGW环境呢?下面我给大家分享一下。 工具/材料 MinGW安装包 首先我们需要登MinGW的官方平台,进入下载列表,找到Windows下的MinGW安装包进行下载,如下图所示 接下来点击下载好的MinGW安装包进入安装向导,点击底部的Install按钮,如下图所示 然后需要设置一下安装的位置以及是否生成快捷启动方式,如下图所示 接下来就跳转到安装管理器界面了,我们选择右侧第三个选项,右键单击选择Mark for Installation选项,如下图所示 然后点击左上角的Installation菜单,在下拉菜单中选择Apply Changes选项,如下图所示 接下来在弹出的界面中我们点击Apply按钮,如下图所示 接着MinGw相关的包以及程序就会进行下载以及安装了,如下图所示 然后当出现右上角的Successfully字样的时候则代表安装已经完成,如下图所示 接下来我们打开系统属性界面,点击底部的环境变量按钮,如下图所示 在环境变量界面中我们找到Path环境变量并双击它,如下图所示 然后我们在Path环境变量中将刚才安装的MinGW路径添加进去,如下图所示 最后打开CMD命令行,输入gcc -v命令查看mingw是否配置成功,如果出现如下图所示的信息则代表配置成功
Windows系统中如何安装并配置MinGW
我们在Windows系统中运行C文件的前提是系统已经安装并配置了MinGW环境。那么该如何在Windows系统中安装并配置MinGW环境呢?下面我给大家分享一下。 工具/材料 MinGW安装包 01 首先我们需要登MinGW的官方平台,进入下载列表,找到Windows下的MinGW安装包进行下载,如下图所示 02 接下来点击下载好的MinGW安装包进入安装向导,点击底部的Install按钮,如下图所示 03 然后需要设置一下安装的位置以及是否生成快捷启动方式,如下图所示 04 接下来就跳转到安装管理器界面了,我们选择右侧第三个选项,右键单击选择Mark for Installation选项,如下图所示 05 然后点击左上角的Installation菜单,在下拉菜单中选择Apply Changes选项,如下图所示 06 接下来在弹出的界面中我们点击Apply按钮,如下图所示 07 接着MinGw相关的包以及程序就会进行下载以及安装了,如下图所示 08 然后当出现右上角的Successfully字样的时候则代表安装已经完成,如下图所示 09 接下来我们打开系统属性界面,点击底部的环境变量按钮,如下图所示 10 在环境变量界面中我们找到Path环境变量并双击它,如下图所示 11 然后我们在Path环境变量中将刚才安装的MinGW路径添加进去,如下图所示 12 最后打开CMD命令行,输入gcc -v命令查看mingw是否配置成功,如果出现如下图所示的信息则代表配置成功
cygwin和mingw的区别
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下等价的形式。同时这个程序是不能在windows下运行的。
说白了,如果你是想在windows环境下开发Linux运行程序,那么CygWin/gcc是你的不二之选。
而如果你想开发的是windows运行程序,并且追求速度,那么二者相比而言,MinGW是更好的选择
我没有用过这两个工具,只是有点想选择一个来用,于是在网上比较一下两者有啥不同,然后选一个适合自己的。过程中,我发现网上一份文章可能被多个人转载,被多个人稍微修改后当成自己的随笔写出,误认不浅。
说一点,什么cygwin编译的程序可以无缝在linux上运行,根本就不能这么理解。
cygwin官方的一个定义是Cygwin is not a way to run native linux apps on Windows. You have to rebuild your application from source if you want it to run on Windows.
翻译过来就是
cygwin不是让linux程序能在windows上运行的方法,如果你想要让linux程序能在windows运行,那么你只有用cygwin来重新编译一下源文件。
这句话完全反驳了无缝运行在linux的说法。就是说你在linux上编译的elf程序不能直接拿到cygwin上运行,同样,你用cygwin编译的程序也不是linux的elf格式,而是exe格式,exe是无法在linux上运行的。
cygwin和mingw都是为用户提供在windows操作系统使用GNU工具的方法,使得在windows上可以编译为linux写的c源代码并运行(让你可以用signal等linux才有的api)。真正的不同在于
1,cygwin大,mingw小
2,cygwin编译后的exe需要cygwin1.dll作为支持,而mingw不需要就可以直接运行,因为有中间层所以cygwin慢,mingw快。
3,cygwin包含的内容更全面,能编译通过的linux源文件更多,mingw的min是minimalist所以能编译通过的更少。但,不是全部,就是说别指望你可以把任何为linux写的源代码在cygwin或mingw编译通过并运行。
在网上找的,不知道对不对
Cygwin和MinGW的区别与联系
1、从目标上说
MinGW 是让Windows 用户可以用上GNU 工具,比如GCC。
Cygwin 提供完整的类Unix 环境,Windows 用户不仅可以使用GNU 工具,理论上Linux 上的程序只要用Cygwin 重新编译,就可以在Windows 上运行。
2、从能力上说
如果程序只用到C/C++ 标准库,可以用MinGW 或Cygwin 编译。
如果程序还用到了POSIX API,则只能用Cygwin 编译。
3、从依赖上说
程序经MinGW 编译后可以直接在Windows 上面运行。
程序经Cygwin 编译后运行,需要依赖安装时附带的cygwin1.dll。
Cygwin是用一个dll模拟linux环境来“欺骗”应用程序,好像自己运行在linux环境下;而mingw是在编译时提供linux到windows必要代码的“翻译”转换,用到的还是windows运行时库。
在cygwin下编译出来的程序需要cygwin.dll才能在windows下运行,源码拿到linux环境下重新编译就可以在linux下跑起来;mingw环境下编译出来的程序,只能在windows下跑,源码在linux环境下编译多半通不过。


