GCC与CMAKE的关系

gcc是编译器,可以编译多种编程语言(C、C++、Java…)

引申:mingw相当于是GCC的windows的版本,具体见:关于MinGW32 和 MinGW-w64

make是一种工具,通过调用makefile来编译文件,makefile里包含gcc的命令

自己写makefile多麻烦,cmake可以通过cmakelist.txt来生成makefile

cmakelist怎么来的呢?自己写的

当然,如果使用vs等ide,vs都帮你编译好了,点一下就行了

如果是拷贝的代码,vs编译的时候出现很多lnk2019的错误,可能就需要编译之后再用

编译可以用cmakeGUI或者命令行窗口(cmake、make…)

这就需要提前配置好cmake的环境,配置环境见:link

MinGW32 和 MinGW-w64的渊源

MinGW 的全称是:Minimalist GNU on Windows 。

它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。

而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。

一句话来概括:MinGW 就是 GCC 的 Windows 版本 。

以上是 MinGW 的介绍,MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。

事实上成为标准的“专有名词”mingw32里的32是固定的。

另外,所有这些大小写一般也是固定的。

GCC等的源码配置里面也有硬编码进去。

然后,因为mingw32只支持32位,有人觉得不够用。

Kai Tietz fork出MinGW-W64替代了MinGW

这里的一个主要人物,就是现在MinGW-W64的主要维护者Kai Tietz。

因为工作需要他想MinGW提供扩充x64支持,但对方态度很不友好。于是愤而fork出来,这就是MinGW-W64的由来。

可见,MinGW-W64和原版MinGW有所渊源,但是独立的两个项目。

MinGW 现已被 MinGW-w64 所取代,且 MinGW 也早已停止了更新,内置的 GCC 停滞在了 4.8.1 版本。