编译器、编译环境、IDE(集成开发环境)、编辑器、编译运行工具链(toolchain)、构建(build)这几个概念是新手在初学C++时经常见到但又非常容易混淆的,在此简单说明一下它们之间的区别与联系,以及介绍一些常见的C++编译器。
一、概念解析
编译器:开发C++程序通常会经历编写源代码、预处理、编译、链接等几个步骤,其中编译就是将C++语句转换成二进制文件,而执行此任务的一段程序就称为编译器。
编译环境:编译器是程序,要想运行就离不开具体的操作系统环境。
IDE(集成开发环境):是指将项目文件管理器、代码编辑器、调试器、编译器等各种开发时所需要用到的工具整合在一起以极大程度上方便开发者进行开发的工具集合,通常是打包一起安装的。
编辑器:可以用来编辑代码的程序都可以叫编辑器,常见的包括VSCode、Vim、Notepad等。
编译运行工具链(toolchain):软件的编译过程由一系列步骤完成,每一个步骤都有一个对应的工具。这些工具紧密地工作在一起,前一个工具的输出是后一个工具的输入,像一根链条一样,我们称这些工具为工具链。
构建(build):构建就是将源代码转换为可执行文件的过程,大体上分为预处理、编译、链接三步。
二、常见的C++编译器
(一)MSVC:
MSVC是微软windows平台Visual Studio自带的C/C++编译器。
(二)GCC(G++):
GNU的C和C++编译器,主要用于Linux平台。GCC常见的编译环境有三个:
(1)Linux或WSL(Windows Sub-system for Linux, win10 内置的虚拟环境)中直接使用GCC。
(2)Cygwin是一个Windows下Unix-like模拟环境,GCC安装在Cygwin上。
(3)MingGW(Minimalist GNU on Windows)是一个Linux/Windows下的可以把软件源码中Unix-like OS API调用通过头文件翻译替换成相应的Windows API调用的编译环境。
(三)Clang:
Clang是一个由Apple主导编写,基于LLVM( Low Level Virtual Machine 的简称)的C/C++/Objective-C编译器,主要用于Mac OS X平台的开发。