GCC与Clang
阅读数:146 评论数:0
跳转到新版页面分类
C/C++
正文
GCC:GNU(Gnu's Not Unix)编译器套装(GNU Compiler Collection,GCC),指一套编程语言编译器,以GPL及LGPL许可证所发行的自由软件,也是GNU项目的关键部分,也是GNU工具链的主要组成部分之一。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。1985年由理查德·马修·斯托曼开始发展,现在由自由软件基金会负责维护工作。GCC原本用C开发,后来因为LLVM、Clang的崛起,它更快地将开发语言转换为C++。
GCC支持的主要处理器架构:ARM、x86、x86-64、MIPS、PowerPC等。
Clang:是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端。它采用了底层虚拟机(LLVM)作为其后端。它的目标是提供一个GNU编译器套装(GCC)的替代品。作者是克里斯·拉特纳(Chris Lattner),在苹果公司的赞助支持下进行开发,而源代码授权是使用类BSD的伊利诺伊大学厄巴纳-香槟分校开源码许可。Clang主要由C++编写。
这个软件项目在2005年由苹果电脑发起,是LLVM(Low Level Virtual Machine)编译器工具集的前端(front-end),目的是输出代码对应的抽象语法树(Abstract Syntax Tree, AST),并将代码编译成LLVM Bitcode。接着在后端(back-end)使用LLVM编译成平台相关的机器语言。
相关推荐
一、概述
GCC一般包括预处理、编译、组装和链接。GCC的运行一般是调用命令gcc,在cross-compiling时使用machine-gcc或machine-gcc-version,在使用c++时
文档对应gcc版本8.4
GCC原来表示GNU C Compiler,现在一脙GNU Compiler Collection。支持C、C++、Objective-C,Objecti
一、概述
1、作用
__attribute__ 可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。
编译器中的sanitize来自于google的开源sanitizers项目,后GNU将该工具加入到GCC编译中,是查找隐藏Bug的利器。
-fsanitize=address</p
一、基本的asm
格式: asm asm-qualifiers ( AssemblerInstructions)
(1)asm关键字是GNU的扩展,当编译配置项为-ansi或-std配置项时,使用__
一、概述
1、prolog与epilog
prolog翻译过来是“序言;开端”。
epilog翻译过来是”后记;结语“。
prolog与epilog其实就是两段固定的代码,当编译器对程序进行编译的时候
在C语言编程过程中,我们常常会实现一些可变参数的函数调用(类scanf、printf函数),变参函数在我们编程过程中带来了很大的方便,但是也有一些问题,即我们在调用可变参数的函数的时候,默认情况