简介
msys2是一款跨平台编译套件,它模拟linux编译环境,支持整合mingw32和mingw64,能很方便的在windows上对一些开源的linux工程进行编译运行。
类似的跨平台编译套件有:msys
,cygwin
,mingw
优势
- 相对于
cygwin
和msys
等环境,它支持pacman
包管理器,这意味着你可以很方便的安装所需要的软件包和开发库,而不需要自己去找源码编译 - 支持多种编译环境,可以很方便的整合
mingw
和clang
,自身也是基于cygwin的一个简单开发环境,可以通过pacman
包管理器很方便的安装对应编译环境的开发库。msys2的安装目录结构如下:
我们可以看到上面的图片中,自带 clang32,clang64,mingw32和mingw64 这四个文件夹,默认这四个文件夹是空的,我们可以根据需要自行的下载对应的编译套件放入。比如我们放入了mingw编译套件,就可以使用mingw32.exe和mingw64.exe来方便的运行对应的编译环境。这个编译环境是继承了 msys2 自身环境的,而不是独立的。
演示
这里使用Cmder来演示msys2功能,如果不知道Cmder是什么,请看上一篇文章
小贴士
- 建议搭配Cmder进行使用,这样会很爽
- 设置msys2代理,有时候国内的网络环境可能访问很慢
打开 /etc/profile 文件,然后写入
这样下载软件包就舒服多了# proxy settings export HTTP_PROXY="127.0.0.1:1080" export HTTPS_PROXY=$HTTP_PROXY export http_proxy=$HTTP_PROXY export https_proxy=$HTTP_PROXY
- 需要注意msys2和ming32是两套环境,上面的演示gif也说明了这个问题,所以一定要注意按需下载,类似gcc,g++这种都是两套的,但是configure程序只有msys2自带的那个,它自己会根据你打开的命令行环境来生成对应编译环境的Makefile,调用对应的gcc等程序
- 如果出现奇怪的编译错误,那么可以检查一下是不是现有的编译环境某些程序和msys2自身环境有冲突,因为其他编译环境一定程度上继承了msys2自身的环境。
- 如果编译的时候需要一些老的开发库,那么可以访问msys2的官方仓库网址,一般可以在这里找到老的开发库安装包,然后我们下载下来使用pacman本地安装即可