简介

msys2是一款跨平台编译套件,它模拟linux编译环境,支持整合mingw32和mingw64,能很方便的在windows上对一些开源的linux工程进行编译运行。
类似的跨平台编译套件有:msyscygwinmingw

优势

  1. 相对于 cygwinmsys 等环境,它支持 pacman 包管理器,这意味着你可以很方便的安装所需要的软件包和开发库,而不需要自己去找源码编译
  2. 支持多种编译环境,可以很方便的整合 mingwclang,自身也是基于cygwin的一个简单开发环境,可以通过 pacman 包管理器很方便的安装对应编译环境的开发库。msys2的安装目录结构如下:

    我们可以看到上面的图片中,自带 clang32,clang64,mingw32和mingw64 这四个文件夹,默认这四个文件夹是空的,我们可以根据需要自行的下载对应的编译套件放入。比如我们放入了mingw编译套件,就可以使用mingw32.exe和mingw64.exe来方便的运行对应的编译环境。这个编译环境是继承了 msys2 自身环境的,而不是独立的。

演示

这里使用Cmder来演示msys2功能,如果不知道Cmder是什么,请看上一篇文章

小贴士

  1. 建议搭配Cmder进行使用,这样会很爽
  2. 搭建mingw32环境除了我们直接下载放入之外,还可以使用 msys2 包管理器来安装
    pacman -S mingw-w64-i686-gcc
    
  3. 设置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
    

    这样下载软件包就舒服多了

  4. 需要注意msys2和ming32是两套环境,上面的演示gif也说明了这个问题,所以一定要注意按需下载,类似gcc,g++这种都是两套的,但是configure程序只有msys2自带的那个,它自己会根据你打开的命令行环境来生成对应编译环境的Makefile,调用对应的gcc等程序
  5. 如果出现奇怪的编译错误,那么可以检查一下是不是现有的编译环境某些程序和msys2自身环境有冲突,因为其他编译环境一定程度上继承了msys2自身的环境。
  6. 如果编译的时候需要一些老的开发库,那么可以访问msys2的官方仓库网址,一般可以在这里找到老的开发库安装包,然后我们下载下来使用pacman本地安装即可

下载地址

https://www.msys2.org/

1+
赞赏

微信赞赏支付宝赞赏