编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。
下面介绍一下GCC、Clang、Visual Studio以及Eclipse
GCC
指一套编程语言编译器,GNU(gnu's not unix)编译器套装(gnu compiler collection,gcc)。以GPL及LGPL许可证所发行的自由软件,是GNU项目的关键部分,也是GNU工具链的主要组成部分之一。GCC也常被认为是跨平台编译器的实施标准。原本是用C语言开发的,后来因为LLVM、Clang的崛起,它更快的将开发语言转换为C++。原本只能处理C语言,GCC在发布后很快得到扩展,变得可以处理C++。之后也变得可以处理Fortran、Pascal、Objective-C、Java、Ada、Go与其他语言。
许多操作系统,包括许多类Unix系统都采用GCC作为标准编译器。GCC目前由世界各地不同的数个程序员小组维护。它是移植到最多中央处理器架构以及最多操作系统的编译器。已成为编译与创建其它操作系统的主要编译器。
GCC通常是跨平台软件的首选,有别于一般局限于特定系统与运行环境的编译器,GCC在所有平台上都使用同一个前端处理程序。
GCC支持的主要处理器架构:ARM、x86、x86-64、MIPS、PowerPC等。
Clang
Clang是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端。源