当前位置: 首页 > news >正文

gcc/g++/clang/cl编译器

编译器一般构成

传统的编译器通常分为三个部分,前端(frontEnd),优化器(Optimizer)和后端(backEnd)。在编译过程中,前端主要负责词法和语法分析,将源代码转化为抽象语法树;优化器则是在前端的基础上,对得到的中间代码进行优化,使代码更加高效;后端则是将已经优化的中间代码转化为针对各自平台的机器代码

分类

GCCGNU Compiler CollectionGNU编译器套装),是一套GNU开发的编程语言编译器。它是一套以GPL及LGPL许可证所发布的自由软件,也是GNU项目的关键部分,亦是自由的类Unix及苹果电脑Mac OS X 操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。

GCC原名为GNU C语言编译器GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,变得可处理C++。之后也变得可处理Fortran、Pascal、Objective-C、Java、Ada,以及Go与其他语言。

原本用C开发,后来因为LLVM、Clang的崛起,令GCC更快将开发语言转换为C++。许多C的爱好者在对C++一知半解的情况下主观认定C++的性能一定会输给C,但是Taylor给出了不同的意见,并表明C++不但性能不输给C,而且能设计出更好,更容易维护的程序。

GCC与G++的区别

Clang(发音为/ˈklæŋ/类似英文单字clang) 是一个CC++Objective-CObjective-C++编程语言的编译器前端。它采用了底层虚拟机(LLVM)作为其后端。它的目标是提供一个GNU编译器套装(GCC)的替代品。作者是克里斯·拉特纳,在苹果公司的赞助支持下进行开发,而源代码授权是使用类BSD的伊利诺伊大学厄巴纳-香槟分校开源码许可。

Clang项目包括Clang前端和Clang静态分析器等。

cl.exe 是控制Microsoft C 和C++ 编译器以及链接器的工具(Compile and Link)cl.exe 只能在支持Microsoft Visual Studio 的操作系统中运行

相关文章:

  • 深入浅出让你理解什么是LLVM
  • Ninja - chromium核心构建工具
  • depot_tools
  • 智能指针 unique_ptr 详解
  • C++11中“= delete;“的使用
  • C++Error2208:...尝试引用已删除的函数
  • Ninja 构建系统
  • ICU
  • 交叉编译详解
  • GYP,GN和Ninja
  • Visual C++ 新增功能(2003 - 2015)
  • v8引擎编译全记录2021-2-23
  • c++ mutex
  • windows标准控件的介绍与使用
  • VS2019安装 VisualSVN Server 插件
  • [NodeJS] 关于Buffer
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • CSS盒模型深入
  • CSS实用技巧干货
  • FastReport在线报表设计器工作原理
  • github指令
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Mysql数据库的条件查询语句
  • Netty源码解析1-Buffer
  • python大佬养成计划----difflib模块
  • ReactNativeweexDeviceOne对比
  • swift基础之_对象 实例方法 对象方法。
  • 创建一种深思熟虑的文化
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 实现简单的正则表达式引擎
  • 智能网联汽车信息安全
  • Mac 上flink的安装与启动
  • 阿里云重庆大学大数据训练营落地分享
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ###C语言程序设计-----C语言学习(3)#
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $.ajax()参数及用法
  • (+4)2.2UML建模图
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (接口自动化)Python3操作MySQL数据库
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (轉貼) UML中文FAQ (OO) (UML)
  • .gitattributes 文件
  • .net Application的目录
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .Net小白的大学四年,内含面经
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @RequestParam详解
  • @Transient注解