windows下mingw和msys
2021-07-01 本文已影响0人
西贝_贾
MSYS 和 MinGW64 的区别和联系?
MSYS 相当于操作系统(如Windows),这个操作系统提供的软件、接口等和Linux相似。
MinGW 相当于开发工具包(如MSVC),这个开发工具包可以运行在 MSYS 下,包里的工具也可以运行在Windows下,编译结果是Windows程序。
参考自:使用MSYS的一些经验 - 知乎 (zhihu.com)
MSYS和mingw的选择
MSYS2 和 MinGW 都提供 gcc,但是属于两个完全不同的工具链。前者属于 msys2-devel ,后者属于 mingw-w64-$arch-toolchain。使用 mingw-gcc 编译的目标文件是原生的,而使用 msys2-gcc 编译的目标文件依赖于 msys-2.0.dll 提供的虚拟 POSIX 环境。如果你要编译的东西强依赖于 POSIX syscall (比如 fork 等),那么就要用 MSYS2 的 gcc。而如果是要当做一个 release 拿去给别人用的,用 MinGW 的 gcc 好些。当然,事情也不绝对,对于前者你也可以给源文件 patch 一个 MinGW 移植,对于后者也可以用 MSYS2 然后附带上 msys-2.0.dll。根据我自己的经验,如果你使用目标文件的环境就是 MSYS2 的话,用 MSYS2 工具链编译的程序要比 MinGW 工具链的稳定一些(对 ruby, python 等工具而言)。
参考自:想在Windows 下使用GCC 等工具,应该选MinGW 还是MSYS2? - 知乎 (zhihu.com)
MinGW 版本说明
参考自:(3条消息) MinGW-w64 C/C++编译器下载和安装_石大侠-CSDN博客_mingw64
image.png- Architecture:i686是32位,x86_64是64位系统。
- Thread: win32对应开发Windows程序,posix对应其它
- Exception: 当Architecture是i686时,此处可选sjlj和dwarf,当Architecture是x86_64时,此处可选sjlj和seh