MSYS2 和 MinGW 都提供 gcc,但是属于两个完全不同的工具链。
前者属于 msys2-devel ,后者属于 mingw-w64-$arch-toolchain。
使用 mingw-gcc 编译的目标文件是原生的,而使用 msys2-gcc 编译的目标文件依赖于 msys2 提供的虚拟 POSIX 环境。
如果你要编译的东西强依赖于 POSIX syscall (比如 fork 等),那么就要用 MSYS2 的 gcc。而如果是要当做一个 release 拿去给别人用的,用 MinGW 的 gcc 好些。当然,事情也不绝对,对于前者你也可以给源文件 patch 一个 MinGW 移植,对于后者也可以用 MSYS2 然后附带上 相关dll。
文尾附上MSYS2 编译FFmpeg依赖项:


本文探讨了MSYS2和MinGW提供的gcc编译器的区别,MSYS2的gcc依赖于虚拟POSIX环境,适合编译强依赖POSIX syscall的项目;而MinGW的gcc编译的目标文件为原生格式,适用于编译无需POSIX环境的release版本。
3795

被折叠的 条评论
为什么被折叠?



