Tiven Wang
Wang Tiven October 27, 2018
425 favorite favorites
bookmark bookmark
share share

MinGW 的全称叫 Minimalist GNU for Windows ,是一套 Windows 环境下 GNU 编译组件的接口,通俗的可以说是 Win 上的 gcc 。比起 MinGW ,也许那只企鹅 CygWin 更加著名一些,实现的效果也差不多,但事实上两者的原理是不同的。Cygwin 通过一个中间层的动态链接库来实现 Win API 和 Cygwin 的连接,好处是应用在 Linux 与 Windows 之间移植更加方便,风格更加一致,缺点是发布应用时一定要带上 Cygwin 的环境动态库,应用执行效率也略微有点低;MinGW 则使用静态链接的方式,生成的应用更加本地化,不需要依赖任何第三方的 C/C++ RT 动态链接库,仅依赖 Windows 自身的运行环境,应用执行效率也稍高。当然现在这两家也开始有了一些功能的互补,总而言之可以相互作为替代品使用。

MSYS 的全称叫 Minimal SYStem ,是 MinGW 的一个子系统,是一套运行在 Windows 上的 bash ,也就是运行在 Windows 上的 Linux Terminal 。这个比较好理解,其实就是在 Windows 上使用 Linux 的命令行进行操作,可以代替 cmd 来使用。对一些 GNU 的开源软件,MSYS 可能是必需的,因为它们通常需要 ./configure 然后 make 才能运行(学 Linux 的童鞋应该非常熟悉这个流程了)。我们将 MSYS 和 MinGW 配合使用就可以打造出一个 Windows 下的 GNU 命令行终端和编译系统。

有一点需要说明的是,MinGW 和 MSYS 都是一套组件而不是一个单独的程序。我们需要下载两者的各组件的压缩包来完成安装和配置。组件的意义在于,我们可以下载需要的部分来配置一个想要的系统,比如不搞编译器设计的童鞋可能不需要 flex 和 bison 组件(用来词法和语法分析的),而 automake 工具也可以在需要的时候才安装,这类似于 Linux 下环境的配置。知道了这些,我们就可以开始 MinGW 和 MSYS 的安装了。

GNU is an operating system that is free software—that is, it respects users’ freedom. The GNU operating system consists of GNU packages (programs specifically released by the GNU Project) as well as free software released by third parties. The development of GNU made it possible to use a computer without software that would trample your freedom.

windows下Mingw 找不到make命令(make.exe缺失)

在windows下编译一些库生成.a文件需要用到gcc,那么安装Mingw即可。

1.安装 cmake,cmake 下载路径:https://cmake.org/files/

2.安装 Mingw,我用的是 mingw-get-setup.exe 。安装所有选项

3.MinGW 系列只提供了名字为 mingw32-make.exe 的执行文件,事实上,该.exe 和make.exe 功能一样,为了make执行时能找到该文件,建议复制 mingw32-make.exe 一份,并将复制文件命名为’make.exe’

Comments

Back to Top