cpp环境搭建 - MinGW和cmake安装
MinGW
MinGW主要用于在Windows上使用gnu下的相关编译工具进行跨平台开发,比如:gcc。
MinGW已经停止更新很长时间了,它只支持编译32位程序,且提供的功能也很少。
MinGW-w64
MinGW-w64是MinGW的一个分支,它在MinGW的基础上,增加了编译64位程序的支持,也加入了更多的功能。
官网:MinGW-w64
源码:
1, MinGW-w64 - for 32 and 64 bit Windows - Browse /mingw-w64/mingw-w64-release at SourceForge.net
2, GitHub - mingw-w64/mingw-w64: (Unofficial) Mirror of mingw-w64-code
不同发行版的MinGW-w64
1) 基础版:
下载地址:Releases · niXman/mingw-builds-binaries (github.com)
2) WibLibs版:在基础版之上,加入了更多gun工具集(如:llvm, clang, gdb等),以及更多的库(opengl, sdl, boost等),
MinGW-w64可以在非Windows系统上编译Windows程序,但WinLibs主要用于在Windows上用gun工具集编译Windows程序。
下载地址:WinLibs - GCC+MinGW-w64 compiler for Windows
tips: 如果你想下载,运行时为msvcrt,但线程模型为windows的,可能就只能下载基础班的,WinLibs有的版本只提供posix线程模型的下载文件。
vc++这么强大,为什么要在Windows上用gnu工具来编译cpp?
因为github上很多的开源cpp项目都是用gnu工具来编译的,这样就省去自己重新在visual studio下重新搭建环境的麻烦了。
MinGW-w64下载文件该怎么选择
1) seh和sjlj 的选择,表示的是2种不同的异常模型
a) sjlj(SetJump / LongJump) :出来的比较早,c语言时代就有了,32和64位都支持
b) seh(Structured Exception Handling,结构化异常处理):出来的更晚一些,性能更好 ,只支持64位
一般64位选择seh
2) ucrt和msvcrt的选择
a) ucrt(Universal CRT):一个通用cpp运行库,更符合cpp标准,适用于Win10及以后的系统
b) msvcrt(Microsoft Visual C++ Runtime):传统cpp运行库,会有微软的一些专有实现,适用于所有的Windows版本
3) posix和win32的选择,表示不同的线程模型
a) posix:Posix规范的线程API,支持c++11/c11多线程。想跨平台或用到std:thread,选这个
b) win32:Windows原生线程API,不支持c++11/c11多线程。仅使用Win32 API来使用线程,选这个
c) mcf:Win7+专属轻量级线程API。针对Win7+优化或底层开发选这个
4) i686和x86_64的选择,表示不同的系统架构
a) i686:32位程序
b) x84_64:64位程序
这边我下载这个(github上的):
下载好后,直接解压到相关文件夹,然后将bin文件夹添加到环境变量即可
用cmd看下是否安装成功
【cmake】
cmake是一款构建工具,可以用于构建(Build) cpp,类似java的maven, ant这种
下载地址:Download CMake
官网:CMake - Upgrade Your Software Build System
我这边下载了一个老版本的
下载好后,直接解压到相关文件夹,然后将bin文件夹添加到环境变量即可
用cmd看下是否安装成功
在线安装
MinGW也有一个在线安装工具,不过只能装老版本了
MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本 (681314.com)
参考
关于c ++:MinGW SEH和MinGW SJLJ有什么区别? | 码农家园 (codenong.com)
MinGw与Cygwin的区别 - lhlc - 博客园 (cnblogs.com)
Win10下的mingw-w64推荐使用winlibs发行版-CSDN博客
探索WinLibs_MingW:构建Windows上的开源C/C++环境-CSDN博客
MinGW 和 MinGW-w64 的介绍与配置-CSDN博客