http://sourceforge.net/projects/msys2/?source=directory
http://msys2.github.io/
http://www.rswiki.org/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/msys2
MSYS2 是MSYS的一个升级版,准确的说是集成了pacman和Mingw-w64的Cygwin升级版, 提供了bash shell等linux环境、版本控制软件(git/hg)和MinGW-w64 工具链。与MSYS最大的区别是移植了 Arch Linux的软件包管理系统 Pacman(其实是与Cygwin的区别)。
优点
安装方便
源速度还可以(修改下载镜像)
自带软件和库较全且很新(对比mingw万年perl 5.8)
自带pacman管理,可以使用pkgtool来makepkg,,完美集成arch折腾之魂
使用mingw-w64工具链,可以编译32位或64位代码(需要之后装)
中文支持好,可以直接输入和浏览中文目录
其他选择
MinGW:较小,运行速度快,但只能编译32位,gcc有低版本(可以配合mingw-w64,编译64位程序),中文支持差
Cygwin:较大,运行速度慢,网络不好的情况下安装成问题
TDM-GCC:不带bash等完整的环境,仅用于编译
在 MSYS2里选择32位或64位程序下载,一路next就行了,然后请参照配置部分
如果不想折腾且是64位的系统的,可以在我的百度网盘上下载,直接解压到根目录,无需安装
使用时,进入mingw64_shell.bat
或者 mingw32_shell.bat
编译64位或者32位程序
下载安装后请首先更新程序,然后安装编译环境,默认不带编译器等工具链。
默认的源在有些地方速度还可以,教育网内速度一般,可以添加其他镜像提高速度,下面列举了已知的速度还可以源,请大家自己按照现有网速排序,现在有些开源镜像添加了msys2的源,感谢各个开源镜像站点!
编辑安装目录下 \etc\pacman.d\
文件夹下 mirrorlist.msys
等三个文件,如下所示:
mirrorlist.msys
## ## MSYS2 repository mirrorlist ## Changed on 2014-11-15 ## ##中国科学技术大学开源软件镜像 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MSYS2/$arch ##北京理工大学镜像 Server = http://mirror.bit.edu.cn/msys2/REPOS/MSYS2/$arch ##日本北陆先端科学技术大学院大学 sourceforge 镜像 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MSYS2/$arch ##The UK Mirror Service Sourceforge mirror Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MSYS2/$arch ## Primary Server = ftp://148.251.42.38/MSYS2/$arch ## Sourceforge.net Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
mirrorlist.mingw64
## ## 64-bit Mingw-w64 repository mirrorlist ## Changed on 2014-11-15 ## ##中国科学技术大学开源软件镜像 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MINGW/x86_64 ##北京理工大学镜像 Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/x86_64 ##日本北陆先端科学技术大学院大学 sourceforge 镜像 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/x86_64 ##The UK Mirror Service Sourceforge mirror Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MINGW/x86_64 ## Primary Server = ftp://148.251.42.38/MINGW/x86_64 ## Sourceforge.net Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
mirrorlist.mingw32
## ## 32-bit Mingw-w64 repository mirrorlist ## Changed on 2014-11-15 ## ##中国科学技术大学开源软件镜像 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MINGW/i686 ##北京理工大学镜像 Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/i686 ##日本北陆先端科学技术大学院大学 sourceforge 镜像 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/i686 ##The UK Mirror Service Sourceforge mirror Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MINGW/i686 ## Primary Server = ftp://148.251.42.38/MINGW/i686 ## Sourceforge.net Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
换源后,运行 pacman -Syu
更新所有工具,重启msys2(关了重开bat)即可
运行 pacman -S mingw-w64-x86_64-toolchain mingw-w64-i686-toolchain base-devel
选择需要的数字,使用空格隔开,按照提示即可.
或者分别安装mingw-w64
、make
等工具
#安装32位 pacman -S mingw-w64-i686-gcc mingw-w64-i686-gcc-fortran make #安装64位 pacman -S mingw-w64-w64-x86-gcc mingw-w64-w64-x86-gcc-fortran make
安装后需要启动对应的脚本,例如需要编译32位程序,启动 mingw32_shell.bat
,使用 msys2_shell.bat
无法启动 gcc
等程序。
参照Archlinux wiki
以下介绍常用的命令:
pacman -Sl
pacman -Ss 安装包名称 pacman -Sl | grep 安装包名称
#删除单个软件包,保留其全部已经安装的依赖关系 pacman -R 安装包名称 #删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系: pacman -Rs 安装包名称 #要删除软件包和所有依赖这个软件包的程序: pacman -Rsc 安装包名称
pacman -Q 安装包名称
#仅在确定当前安装的软件包足够稳定且不需要降级时才执行清理。旧版本的软件包能系统更新崩溃时派上用场 pacman -Sc #清理所有缓存,但这样 pacman 在重装软件包时就只能重新下载了。除非空间不足,否则不应这么做 pacman -Scc
#1.更新软件包数据库 pacman -Sy #2.检测MSYS2 核心库是否需要更新 pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl #3.如果上步更新了,重启bash #4.升级系统pacman -Su
MSYS2集成了Arch的 makepkg
等工具,可以使用 makepkg-mingw
制作包,使用pacman管理本地库.流程如下:
cd ~ #建立packages文件夹 mkdir packages #进入文件夹 cd packages mkdir ${package-name}cd ${package-name} #新建PKGBUILD文件,请参照 /usr/share/pacman/PKGBUILD.proto 文件makepkg-mingw #安装pacman -U ${package-name}*.pkg.tar.xz
在make 后添加 LDFLAGS=-static