-->
clang-快懂百科
Clang是一个C、C++、Objective-C和Objective-C++编译器前端,由Apple公司主导开发,基于LLVM编译器后端。它的目标是提供一个GNU编译器套装(GCC)的替代品,支持大多数的GCC编译设定和非官方语言扩充功能。Clang的源代码发布于BSD协议下,自LLVM 2.6版本开始,与LLVM一起释出新版本。Clang的主要贡献者包括Apple、微软、谷歌、ARM、索尼、英特尔和AMD等公司。Clang的特性包括支持普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。自Clang 15版本开始,它已经完全支持所有已发布的C++标准,实现了大部分C++20的功能,并对即将到来的C++23标准提供了初步支持。自Clang 6.0.0版本开始,默认情况下,Clang使用GNU++14方言编译C++,该方言包含C++14标准和遵从GNU扩展的功能。 软件介绍
Clang是一个由Apple主导编写,基于LLVM的C/C++/Objective-C编译器。2013年4月,Clang已经全面支持C++11标准,并开始实现C++1y特性(也就是C++14,这是C++的下一个小更新版本)。Clang将支持其普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。Clang是一个C++编写、基于LLVM、发布于LLVM BSD许可证下的C/C++/Objective-C/Objective-C++编译器。它与GNU C语 言规范几乎完全兼容(当然,也有部分不兼容的内容,包括编译命令选项也会有点差异),并在此基础上增加了额外的语法特性,比如C函数重载(通过__attribute__((overloadable))来修饰函数),其目标(之一)就是超越GCC。 发展沿革
Clang与LLVM配合使用,提供了替代GCC堆栈的大部分工具链。Clang的主要目标之一是提供基于库的架构,以便编译器可以 与其他与源代码交互的工具(如IDE)进行交互。Clang在编译过程中保留了比GCC更多的信息,并保留了原始代码的整体形式,这使得更容易将错误映射回原始源代码。Clang的错误报告更详细、具体和可机器读取,因此IDE可以索引编译器的输出。编译器的模块化设计可以提供源代码索引、语法检查和其他通常与快速应用程序开发系统相关的功能。Clang只编译类似C的语言,如C、C++、Objective-C和Objective-C++。一个Fortran项目Flang正在进行中,以增加对Fortran的支持。