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

news/2024/11/30 20:44:14/

编译器一般构成

传统的编译器通常分为三个部分,前端(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) 是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端。它采用了底层虚拟机(LLVM)作为其后端。它的目标是提供一个GNU编译器套装(GCC)的替代品。作者是克里斯·拉特纳,在苹果公司的赞助支持下进行开发,而源代码授权是使用类BSD的伊利诺伊大学厄巴纳-香槟分校开源码许可。

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

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

转自:https://www.cnblogs.com/mooreliu/p/4850003.html


http://www.ppmy.cn/news/706225.html

相关文章

FM25CL64程序(C51版)

FM25CL64芯片手册:https://wenku.baidu.com/view/dabf5e71168884868762d6aa.html #ifndef FW25CL64_H #define FW25CL64_H#include "reg51.h" #include "intrins.h"#define WREN 0X06 //写使能操作码 #define WRDI 0X04 //写禁止…

移动机器人的运动学模型:差速传动移动机器人

差速传动移动机器人运动学模型 问题 如何根据差速传动机器人左右两边轮子的速度,计算出机器人当前的状态。或者想要以一定速度到达某处,需要给出差速两边轮子的速度指令。 当然大多数时候,购买的机器人底盘能够直接帮助我们执行发送给机器人…

c语言中执行cl exe时出错,执行cl.exe时出错怎么办

执行cl.exe时出错的解决办法:首先打开vc界面;然后依次点击【“TOOLS”-“Option”-“Directories”】;最后重新设置“Excutable Fils、Include Files...”的路径或者修改环境变量即可。 具体问题: 为什么老是“执行 cl.exe 时出错”#include main() {float a = 12.3,b; dou…

课程学习(Curriculum Learning, CL)

原文链接: https://zhuanlan.zhihu.com/p/362351969 A Survey on Curriculum Learning TPAMI 2021 文章目录 问题定义有效性分析1. 模型优化角度数据分布角度 方法总结Predefined CLAutomatic CL 未来研究方向 全文内容导图汇总: 导图: http…

VS报错-- “CL.exe以退出,代码为5“ 解决办法

报错:CL.exe以退出,代码为5 解决办法: 项目属性–VC目录–可执行文件目录 把从父级或项目默认设置继承勾选上 然后在运行就没有问题了

CL-200A串口通信

一.进入串口模式 1.cl-200a关机,开关拨向“O”端 2.hold on键弹出 3.同时按下SET/CALL/CF,并且开关拨向“I”端,这时候会进入USB模式 二.CL-200A通信命令 模式 命令 PC connect02 30 30 35 34 31 20 20 20 03 31 33 0D 0ASet Hold02 39 39 35 35 31 20 20 30 03 30 32 0D…

STM32驱动FM24CL16

根据小苗开发板例程,修改得好用的读写FM24CL16的2K bytes代码,分享给大家。 小苗开发板的程序有点问题,I2C_Read()里最后产生stop条件时间不对;另外FM24CL16是11位地址的,在I2C_Write()里也应体现出来。 先贴代码&am…

bulk interface驱动_USB驱动程序(较详细)三

(本部分的一些示例源码来自drivers/usb/usb-skeleton.c,它是Linux内核为我们提供的最基础的USB驱动程序,USB骨架程序) 驱动程序把驱动对象注册到 USB 子系统中,之后使用供应商(idVendor)和设备(idProduct)标识来判断对应的硬件是否已经安装. 驱动的设备支持列表 struct usb_…