-
http://msys2.github.io/
-
http://www.rswiki.org/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/msys2
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等完整的环境,仅用于编译
安装
在 里选择32位或64位程序下载,一路next就行了,然后请参照部分
如果不想折腾且是64位的系统的,可以在我的上下载,直接解压到根目录,无需安装
使用时,进入mingw64_shell.bat
或者 mingw32_shell.bat
编译64位或者32位程序
下载安装后请首先更新程序,然后安装编译环境,默认不带编译器等工具链。
配置
换源
默认的源在有些地方速度还可以,教育网内速度一般,可以添加其他镜像提高速度,下面列举了已知的速度还可以源,请大家自己按照现有网速排序,现在有些开源镜像添加了msys2的源,感谢各个开源镜像站点!
编辑安装目录下 \etc\pacman.d\
文件夹下 mirrorlist.msys
等三个文件,如下所示:
-
#### MSYS2 repository mirrorlist## Changed on 2014-11-15####中国科学技术大学开源软件镜像Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch##北京理工大学镜像Server = http://mirror.bit.edu.cn/msys2/REPOS/MSYS2/$arch## msys2.orgServer = http://repo.msys2.org/msys/$arch## Sourceforge.netServer = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
-
#### 64-bit Mingw-w64 repository mirrorlist## Changed on 2014-11-15####中国科学技术大学开源软件镜像Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64##北京理工大学镜像Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/x86_64## msys2.orgServer = http://repo.msys2.org/mingw/x86_64## Sourceforge.netServer = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
-
#### 32-bit Mingw-w64 repository mirrorlist## Changed on 2014-11-15####中国科学技术大学开源软件镜像Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686##北京理工大学镜像Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/i686## msys2.orgServer = http://repo.msys2.org/mingw/i686## Sourceforge.netServer = 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 make#安装64位pacman -S mingw-w64-w64-x86-gcc make
安装后需要启动对应的脚本,例如需要编译32位程序,启动 mingw32_shell.bat
,使用 msys2_shell.bat
无法启动 gcc
等程序。
使用
pacman使用
参照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
本地库使用pacman管理
MSYS2集成了Arch的 makepkg
等工具,可以使用 makepkg-mingw
制作包,使用pacman管理本地库.流程如下:
cd ~#建立packages文件夹mkdir packages#进入文件夹cd packagesmkdir ${package-name}cd ${package-name}#新建PKGBUILD文件,请参照 /usr/share/pacman/PKGBUILD.proto 文件makepkg-mingw#安装pacman -U ${package-name}*.pkg.tar.xz
去掉libgcc_s_dw2-1.dll等
在make 后添加 LDFLAGS=-static