Windows环境下的C/C++编译器

梦想的初衷 提交于 2019-12-02 18:54:46

编译器介绍

在Windows系统下的C/C++开发一般是以VS(Visual Studio)为主的,在Linux上则是GCC占据主导地位,这两种编译器是和其对应的操作系统紧密联系在一起的。伴随着计算机技术的发展,也出现了GCC的Windows移植版。虽然Microsoft的CL编译工具仍然只支持Windows,但其推出的Visual Studio Code作为一款跨平台的代码编辑器也收获了不少好评,可在GitHub上查看其版本历史

查阅网上资料,目前Windows系统下的编译器大概有以下几种:

  1. Visual Studio, 微软自家开发,最新版VS 2017。一般商业公司会采用这种集成化的开发环境(IDE),配合丰富的插件扩展(如Visual Assist),开发调试起来非常方便,个人开发者可免费使用其社区版,也不失为一个不错的选择。
  2. GCC,GNU C/C++ Compiler,功能强大而开源,推荐使用
  3. 其他编译器。在对运行性能有很高要求的领域,可能上述编译器并不合适,因此还有Intel的编译器,PGI编译器等,功能强大但支持平台有限。另外还有一些小众的编译器,当然其中不乏著名的Borland公司的Turbo C,Turbo C++等没落的王者。。。

Windows下的GCC

一般我们不会只使用gcc一个工具,而是希望使用和它相关的一套工具,例如g++, gdb等,称为工具链(toolchain)。在Windows下包含GCC移植版本的主要有 MinGW 和 Cygwin 两个流派。

  1. Cygwin - 其实并不是一个GCC。她是让Windows拥有Unix-like环境的软件,所以,GCC自然也就会包含在里面(注意这里面的GCC和Linux下的GCC是一样的)。不过,对于开发者,Cygwin是一个开发环境。而对于用户来说Cygwin是一个运行环境。使用Cygwin可以在Windows下调用Unix-like的系统函数,比如进程函数。
  2. MinGW - Minimalist GNU for Windows,可看作Windows应用的极简开发环境,提供的开源工具集不依赖于第三方DLL(但会依赖于微软官方库),主要包含GNU GCC编译器的移植版,MSYS以及其他工具。其中的MSYS是一个Bash Shell,可用来代替cmd.exe与MinGW工具一块使用。MinGW支持几乎所有Win32API,确实像是VS的一个替代品。可以从MinGW的官网找到其初始安装包,在安装时选择需要的工具下载安装。
  3. MinGW-w64 - 是MinGW的增强版,开始于2007年。原来的MinGW只能开发32位windows程序,而这个可以开发32位和64位程序,并加入了一系列增强工具。
  4. TDM-GCC - 可用来替代MinGW,它使用最新的GCC稳定版工具集,并且容纳了 MinGW 和 MinGW-w64,能够创建32位和64位程序。简单的说就是,TDM-GCC是包含GCC编译器,MinGW运行时API等很多开源工具的发行套装,只需要下载一个安装文件即可。
  5. MSYS2 - 其中的MSYS表示Minimal SYStem,不过它独立于MSYS开发,基于Cygwin和MinGW-w64,提供了一个bash shell,版本控制(git),MinGW-w64编译环境,以及众多的Unix/Linux环境下的工具。

GCC编译简介

GCC编译过程可以分为四个阶段:预处理,编译,汇编,链接。有时我们不太关心汇编代码,而将只编译和汇编阶段统称为编译。下图展示了源文件hello.c到可执行程序hello.exe的完整编译过程:

GCC编译过程

参考链接:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!