一、MSYS2 介绍
MSYS2(Minimal SYStem 2)是一个集成了大量的GNU工具链、工具和库的开源软件包集合。它提供了一个类似于Linux的shell环境,可以在Windows系统中编译和运行许多Linux应用程序和工具。
MSYS2基于MinGW-w64平台,提供了一个完整的开发环境,包括GCC编译器、GDB调试器、Make、Git版本控制系统和许多其他开发工具。除了常用的开发库和工具之外,MSYS2还提供了许多专门针对Windows平台的库和工具,方便开发人员进行跨平台开发和移植工作。
由于MSYS2拥有比较完整的Linux工具链和库,因此它成为了许多跨平台开发和移植项目的首选工具。另外,使用MSYS2也可以轻松地在Windows系统中搭建一个类似于Linux的软件开发环境,方便开发人员进行开发和调试工作。
二、MSYS2 工具链
MSYS2有两条工具链:MSYS工具链和MINGW工具链,又各可以分为32位版(i686)和64位版(x86-64),以及因为工具配置而形成的更细的分类。
其中msys工具链主要用于自身的工具或者Unix/Linux程序,mingw工具链则主要用于windows程序的编译,但是二者都可以在一定程度上进行以其它操作系统为目标的交叉编译。
msys工具链的 gcc 编译环境,编译的可执行文件属于典型的POSIX接口程序,运行在模拟层,依赖于 msys-2.0.dll。这个 DLL 提供了 Linux 下编程的提供的函数和接口。 这个编译环境可以编译基于 Linux 下编写的软件,例如编译 GNU 提供的各种工具。如果我们要编译一个在msys2及windows里都可以使用的python,显然就要使用msys工具链。