MinGW和MSYS的自动安装

好吧,这是今天写的第二篇文章。我表示这篇才是今天的重头。(伪

半年之前曾经写过一篇关于MinGW和MSYS的手动安装的文章[1],到现在还是全站点击率最高的。(目前这篇文章是最高的。)好吧,侧面反映了MinGW确实是Win上比较难装的软件之一。GNU的东西就是这点最令人不爽,好好的软件弄个自动安装包就这么难么。。好吧,似乎他们听见了我们的抱怨,终于推出了新版的自动安装包!![2]

mingw2-01.jpg

关于MinGW和MSYS的介绍请看之前我写的那篇文章:

http://www.swingworks.net/2010/03/mingw_msys_config/

 

【2012-05-02 更新】
开始安装之前,强烈建议你先阅读这部分的内容——如果你的网络条件不好(连sourceforge的速度很差),或者你想大幅加速你的安装过程并减少错误发生,这部分内容会很有用。否则如果你想体验原汁原味的安装过程,请跳过此段。

国内网络访问sourceforge的速度通常是非常慢的,要命的是MinGW没有提供离线完整包下载,而自动包的安装的过程中不会一一重试,于是各种下载龟速甚至有ERROR发生。好在MinGW的安装路径留有一个cache目录,里面存放有所有下载下来的组件包且不会删除(即使卸载也会保留,如果需要可以删掉来节省空间)。那样的话可以直接将所有需要的组件包先放入cache目录然后运行安装包就行了,方便快捷。

cache目录的位置在:
C:\MinGW\var\cache\mingw-get\packages
你可能需要先建立它的所有父目录再放入所有的组件包。

【2012-05-02更新】所有组件包的网盘下载(包含MinGW安装包):

http://pan.baidu.com/share/link?shareid=5378&uk=117832911
http://dl.dbank.com/c06qouk24k
解压密码是www.swingworks.net

mingw2-12.jpg

mingw2-13.jpg

如果已经安装了MinGW但有组件下载失败,也可以按上述操作然后重新运行安装包。

 

安装步骤:

1. 下载自动安装包,我个人下载的是最新的mingw-get-inst-20101030.exe,以下均以此为例。

http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/

 

2. 双击安装。Vista/Win7用户请右键用管理员身份安装。注意:请尽量装在默认的 C:\MinGW 下。不要问我为什么,这可以解决很多莫名其妙的错误。官网上的原话是[3]:

The recommended installation directory is C:\MinGW. Unless you are very sure you know what you are doing, you should not change this; in particular: never install MinGW into any directory which includes spaces in its absolute path name.

mingw2-02.jpg
点Next

mingw2-03.jpg
选择第一项可以大幅减少接下来的下载量。如果你已经下载了我提供的完整包,请选择第一项

mingw2-04.jpg
选“同意”

mingw2-05.jpg
上面说过了,这里强烈建议不要改动

mingw2-06.jpg
选择程序菜单的位置,默认即可

mingw2-07.jpg
除了最后一项MSYS System Builder建议都勾上。
(2011-06-21注:新版的安装包已经去除了这一选项)

mingw2-08.jpg
点Install开始安装

mingw2-09.jpg
这一步开始下载所需要的组件压缩包。(2012-05-02更新:)如果出现ERROR,请在完成后勾选”Display mingw-get log”查看log文件,然后逐一用mingw-get install或mingw-get upgrade命令修复。要快速修复所有下载失败的包,请看本文的开头灰色段落。

mingw2-10.jpg
完成

 

3. 设置环境变量。在Path变量的末尾加一项 C:\MinGW\bin 。设置成功后可以在Win自带的cmd窗口执行许多非bash only程序,比如gcc,比如mingw-get。

mingw2-11.jpg

 

4. 启动MSYS Shell。注:默认的home目录在 C:\MinGW\msys\1.0\home 或 C:\MinGW\msys\1.0\home\用户名 下

mingw2-14.jpg

注意,如果在第2步下载MSYS失败会造成shell无法启动,此时建议先在第3步的基础上打开cmd窗口输入:
>mingw-get install automake
如此可以重新安装 MSYS 并同时安装好 autoconf 和 automake 工具。

 

5. MSYS和cmd窗口都应该可以正常运行GNU命令了。

mingw2-19.jpg

mingw2-20.jpg

 


PS: 在Win7的任务栏上创建图标

MinGW在Win7的任务栏上并不能通过普通的右键固定来放置图标(真不知道这帮人怎么设计的程序)。如果你希望在Win7的任务栏上放一个MSYS的图标可以这样做:

先打开MSYS,在任务栏上右键固定:
mingw2-15.jpg

关闭MSYS,对图标点击右键,右击”sh”点属性:
mingw2-16.jpg

在“快捷方式”选项卡中将“目标”改成 C:\MinGW\msys\1.0\msys.bat:
mingw2-17.jpg

如果需要修改图标,可以点击“更改图标…”,选择 C:\MinGW\msys\1.0\msys.ico。重启explorer看到刷新。
mingw2-18.jpg

 

 

[1] MinGW 和 MSYS 的手动安装与环境配置. 摆动工坊. http://www.swingworks.net/2010/03/mingw_msys_config/
[2] MinGW – Minimalist GNU for Windows. sourceforge. http://sourceforge.net/projects/mingw/
[3] HOWTO Install the MinGW (GCC) Compiler Suite. MinGW.org. http://www.mingw.org/wiki/InstallationHOWTOforMinGW

鱼尾Swing

国内某理工学校电子类专业85后。热爱PS,热爱WEB,对各种技术都好奇。平时看看动画,听听音乐,做爱做的事。作为工坊的工头,负责工坊的维护,操劳各种苦力工作。

More Posts - Website

Follow Me:
Twitter

27 Responses

  • 我以前只用Cygwin,今天安装MingW,发觉他们真的很喜欢这种在线安装方式。安装时错误一大堆,还好有你的离线包。

    多谢!

  • 大佬,你的压缩包还设置了密码。能够给我密码么?谢了先。

  • 找到你的密码了。是我一目十行,漏了。

  • 我以前安装过的WinARM和WinAVR编译环境中都有自己的交叉编译GCC和UNIX工具集。现在安装了MingW,可以去掉一些重复的了工具了。

    谢谢。

  • 离线包确实给力!

  • 您好!我按照上面步骤安装完成了!可我不会用,能简单说明一下如何编译一个文件吗?我需要编译 linphone-3.3.99.7.tar.gz

  • 您好!我最近开始学习MinGW相关内容!现在需要编译一个linphone-3.3.99.7.tar.gz,按照上述方法安装成功后,我在百度上寻找到的编译方法都行不通;能简单介绍一下如何编译吗,谢谢!邮箱:yanhexiong198774@sohu.com

    • 查了一下linphone需要的库很多,而且牵涉到arm的交叉编译,你可能需要查阅更多的资料,
      对于一般开源软件的源代码通常是先./make clean,然后./configure,然后./make,然后可能需要./make install
      你需要搞清每一步的错误信息看看自己缺少哪些库,然后跑mingw的sourceforge或者使用mingw-get来安装这些库,
      我的文章里面提供的只是最基本的库而已。

  • 您好!我的是xp系统,按上文安装完成后,按照 http://www.linuxidc.com/Linux/2010-10/29198.htm 上说的来编译linphone,但是,总提示 checking for intltool >= 0.40… ./configure: line 6110: intltool-update: command not found
    found
    configure: error: Your intltool is too old. You need intltool 0.40 or later.
    我不知道该如何安装新版本的intltool,我已下载到0.90版本的

    • 试试使用./mingw-get install intltool来更新intltool试试,如果不行再试试下载mingw sourceforge上的intltool包放在文章里所说的缓存目录试试。如果还是提示版本太旧可能是兼容性原因,我这边现在没有环境,暂时无能为力了。。

    • 我实在windows下出现了相同的问题求解

  • 还是没闹出来!不过谢谢了啊!

  • 我直接下载了楼主的自动安装包,然后安装,但不知道这个Mingw+msys环境是否能编译VLC

    • 需要查看一下VLC的官方文档看一下需要哪些库。VLC有Win版本的,最好下载相应平台上的源码来使用。MinGW的使用范围确实很有限。

  • […] C:/MinGW/var/lib/mingw-get/data/mingw32-gettext.xml 这位大牛的研究成果很值得借鉴: http://www.swingworks.net/2010/11/install_mingw_and_msys_with_mingw-get-inst/ 不过,没有设置path路径, […]

  • 使用你的教程安装上了MSYS+MinGW,并且编译了最新的ffmpeg。但是我想编译wince版本的ffmpeg,而MinGW自动安装的是mingw32版本的编译组件,非mingw32ce版本,请问我应该怎样设置?

  • ??要怎么打开设置环境变量的窗口呢

    • 对“我的电脑”或者“计算机”点右键属性,Win7点“高级系统设置”然后点“高级”选项卡,XP可直接在“高级”选项卡中看到。

  • 谢谢鱼。。

  • 很给力,我把这个东东安到了D盘下,编译的时候报错,看代码无错!感谢

  • 今天才看到,安装界面改了,我原来改动了安装目录,问题一堆,现在打算重新安装一次,不知如何。

  • 博主,建议更新一下百度网盘上的软件包~

  • 你好,请问我之前改动了安装目录,现在想要卸载,是直接删除文件夹就可以了吗?

    • 这东西不怎么改注册表。如果控制面板里面的卸载按钮已经被更新到了新位置,就别管了。然后到环境变量的PATH里面看下有没有残留路径即可。

  • […] 2:MingW 在线安装被墙,这里用的离线安装。参考http://www.swingworks.net/2010/11/install_mingw_and_msys_with_mingw-get-inst/ 来进行安装。   当时我先使用cygwin进行编译。 cygwin […]

Leave a Reply