MinGW, a contraction of "Minimalist GNU for Windows", is a minimalist development environment for native Microsoft Windows applications.
MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs. (It does depend on a number of DLLs provided by Microsoft themselves, as components of the operating system; most notable among these is MSVCRT.DLL, the Microsoft C runtime library. Additionally, threaded applications must ship with a freely distributable thread support DLL, provided as part of MinGW itself).
MinGW compilers provide access to the functionality of the Microsoft C runtime and some language-specific runtimes. MinGW, being Minimalist, does not, and never will, attempt to provide a POSIX runtime environment for POSIX application deployment on MS-Windows. If you want POSIX application deployment on this platform, please consider Cygwin instead.
Primarily intended for use by developers working on the native MS-Windows platform, but also available for cross-hosted use, (see note below -- you may need to follow the "read more" link to see it), MinGW includes:
- A port of the GNU Compiler Collection (GCC), including C, C++, ADA and Fortran compilers;
- GNU Binutils for Windows (assembler, linker, archive manager)
- A command-line installer, with optional GUI front-end, (mingw-get) for MinGW and MSYS deployment on MS-Windows
- A GUI first-time setup tool (mingw-get-setup), to get you up and running with mingw-get.
MSYS, a contraction of "Minimal SYStem", is a Bourne Shell command line interpreter system. Offered as an alternative to Microsoft's cmd.exe, this provides a general purpose command line environment, which is particularly suited to use withMinGW, for porting of many Open Source applications to the MS-Windows platform; a light-weight fork of Cygwin-1.3, it includes a small selection of Unix tools, chosen to facilitate that objective.
转: https://zhidao.baidu.com/question/714847035921066325.html
1. Cygwin
http://www.cygwin.com/ cygwin可以简单的认为是在Windows上提供了一个Linux环境。是一个提供大量POSIX API功能的DLL(cygwin1.dll)。
2. MinGW/MSYS
http://www.mingw.org/
如果仅仅是想执行一些bash环境下的命令,可不安装MinGW。
MinGW为Windows下的应用程序(native MS-Windows applications)开发提供了一个工具集,并不依赖于第三方的C运行时DLL(但依赖于微软本身提供的一些DLL库,如msvcrt.dll。此外,多线程程序还依赖于MinGW提供的线程支持DLL库)。MinGW并不是在Windows下为POSIX应用程序提供POSIX运行环境。MinGW包括:1)GNU编译器集合,包括C、C++、ADA和Fortran;2)GNU Binutils for Windows(汇编器、连接器、归档管理器);3)mingw-get,命令行安装程序,用于安装MinGW和MSYS的包;4)mingw-get-inst,是mingw-get的UI版
MSYS(Minimal SYStem),是一个bash命令行解释系统。可作为cmd.exe的替换,与MinGW同时使用。MSYS是来自于Cygwin-1.3的轻量级分支,包括了少量的Unix tools。
3. Gow
https://github.com/bmatzelle/gow
Gow是Cygwin的一个轻量级替换,一个10MB大小的安装包可以安装约130个从Unix移植到Windows下的原生Win32程序。命令的执行在cmd.exe中。Gow提供了一个右键点击文件夹“Command Prompt Here”的菜单项。在文件夹内可以Shift+右键,选择“在此处打开命令行窗口”代替。
4. GnuWin32
http://gnuwin32.sourceforge.net/
同样提供了一系列移植到Windows环境下的Unix工具,在cmd.exe下运行。该项目似乎自2010年底以来从未更新过。
5. UnxUtils
http://unxutils.sourceforge.net/
类似于GnuWin32,似乎也是从2010年底以来从未更新过。
6. msysgit
http://msysgit.github.io/
msysgit是一个windows下Git的构建环境。尽管该工具是Windows下的Git,但由于基于MinGW的,可在其命令行下执行一些Linux命令。右键->Git Bash,即可进入bash环境。
小结
分析以上几个工具,Cygwin与Gow还是比较合适的,前者默认提供了基于mintty的CLI窗口,并且由于模拟了Linux环境,可以对色彩上进行一系列定制,后面我将单独写文章说明。而Gow提供的工具本身仅能在cmd下使用,但安装便利且体积小,并且在cygwin环境下若未安装相应命令,会从Windows的PATH中搜索到Gow安装的工具来执行的。可通过which命令查看所执行的程序。
http://blog.csdn.net/yangyangyang20092010/article/details/46350519
Win7 64位中MinGW和MSYS的安装
背景:
A. 由于需要在Win7 64位系统下使用Visual Studio,并调用OpenBlas库,所以需要gcc在windows下编译该库。
B. MinGW集成了众多的编译器,因此想通过安装MinGW来使用gcc。同时,需要通过MSYS使用与编译相关的命令行。因此,需要同时安装MinGW和 MSYS。
C. 通常,网上能找到的MinGW安装包中(http://www.mingw.org)都已经附带了MSYS组件,且提供了GUI界面,因此安装较为容易,可参考本人博文 (Windows 中OpenBlas 的安装 - Windows 32bit 适用 )。然而,针对MinGW,这些安装包中的编译器往往只适用于Win32, 而不适用于Win64。
D. 因此,若要在Win7 64位中使用MinGW,就需要特别安装 MinGW-w64。
E. MinGW和MSYS是两个可独立使用的组件。MinGW对操作系统敏感。
安装:
安装前请先务必卸载其他版本的MinGW。
1. 首先安装MinGW-w64。
========== 安装方法 A ==========
下载地址:http://sourceforge.net/projects/mingw-w64/?source=recommended
而后启动该 .exe文件,开始安装。安装开始时,需要注意设置为如下图所示。安装目录设为 C:\MinGW,这个目录是MinGW推荐的。由于是在线下载、安装,所以耗时大概为30分钟。
安装完成后,需要将路径 C:\MinGW\mingw64\bin 添加到PATH环境变量中。此时启动cmd窗口,输入 gcc -v,则可以查看到gcc编译器的版本信息。
备注:
A. 不同于以往的MinGW安装包,该MinGW-w64只包含了MinGW编译器本身,而不包含MSYS等组件,因此在后续并不会弹出Windows 中OpenBlas 的安装 - Windows 32bit 适用 中所示的组件选择安装界面。MinGW-w64只是单纯的编译器安装包,这也是为什么本文中需要单独安装MSYS的原因。
B. 由于后续MSYS可能调用make命令,而MinGW系列只提供了名字为 mingw32-make.exe 的执行文件(C:\MinGW\mingw64\bin 路径下),事实上,该.exe 和make.exe 功能一样,为了make执行时能找到该文件,建议复制 mingw32-make.exe 一份,并将复制文件命名为'make.exe'。
========== 安装方法 B ==========
方法A需要在线下载、安装,因此对网络有要求(我第二次用A方法安装MinGW遇到的问题就是:可以浏览网页并下载mingw-w64-install.exe,但后续的在线安装就出问题: Cannot download repository.txt [0],具体原因没有找到,只怪学校的网络管得太...)。通过如下链接:
http://sourceforge.net/p/mingw-w64/mailman/message/32967954/
直接下载合适配置的、已编译的MinGW64文件库,放到C:\MinGW目录下,并同方法A一样进行后续处理。具体下载哪个版本,可以参考方法A中的setting,或者结合自己的需求。
2. 安装 MSYS。
下载地址: http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/
在该下载页面中,应该下载的是下图中README.txt下面的压缩包文件,而非‘Download mingw-builds-install.exe’。
下载后,解压缩,可看到文件内有msys文件夹,将msys文件夹整体移动到路径 C:\MinGW 下。在msys文件夹内,会看到 msys.bat 文件,双击则启动MSYS,在MSYS中则可使用UNIX下的命令行,如make。
备注:
A. 在MSYS中,可用 'where make' 来查看可供调用的 make.exe 位置。
我的一个小疑惑,如前面所写,MinGW内存在make.exe,而MSYS内也存在make.exe(C:\MinGW\msys\bin),那么当在MSYS内输入make命令时,调用的到底是那个make.exe? 希望路过的知道答案的能指点一下。