编译器工作过程简介

编译器

	负责把人能看得懂的记录了代码的文本文件,翻译成计算机能看懂的二进制文件,有预处理器、编译器、链接器
	
	gcc 是由GNU组织为了编译Linux内核代码而开发的一款免费开源的编译器,默认采用C89标准,-std=gnu99可以设置语法标准
	
    常用参数:(区分大小写)
        -E      显示预处理的结果        会加入到 a.out 文件的头部
        -S      生成汇编代码        生成.s文件
        -c      只编译不链接        .o 目标文件 全都是二进制 链接完才能达成目标效果
        -o      设置编译结果的名字      一般设置同名.i文件
        -I      指定头文件的加载路径        优先度最高
        -l      指定要使用的库文件      -lm libm.so 数学库 就算头文件加了math.dio 不加-lm也无法使用数学函数     -lc已经默认加入
        -Wall   以更严格的编译标准来检查代码,尽可能多的显示警告        例:定义变量并没有使用会报warning
        -Werror 把警告当错误处理        warning->error

C代码变成可执行程序的过程

1、预处理   把源文件翻译成预处理文件
    gcc -E xxx.c    显示预处理结果,但是不生成任何文件
    gcc -E xxx.c -o xxx.i   生成以.i结尾的预处理文件
2、编译     把预处理文件翻译成汇编文件
    gcc -S xxx.i    生成以.s结尾的汇编文件
3、汇编     把得到的汇编文件翻译成二进制的目标文件
    gcc -c xxx.s    生成以.o结尾的目标文件
4、连接     把若干个目标文件合并成一个可执行文件
    gcc a
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GCC是GNU Compiler Collection(GNU编译器集合)的缩写,它是一个流行的开源编译器套件。GCC在许多操作系统上广泛使用,并支持多种编程语言,如C、C++、Objective-C、Fortran等。 深入分析GCC PDF文档主要包含以下内容: 1. 简介和背景:PDF文档可能会提供GCC的历史和发展背景,讲解GCC作为一个自由软件项目的诞生和发展过程。还可能涵盖GCC发行版本的演变和GCC在开源社区中的地位。 2. GCC编译器的组成:PDF文档可能会详细描述GCC编译器的各个组成部分,如预处理器、编译器、汇编器和链接器等。还会介绍这些组件的功能、作用和相互关系。 3. 支持的编程语言:PDF文档可能会列举GCC支持的编程语言,并描述GCC在各种语言的编译器方面的特点和能力。对于每种语言,可能会介绍GCC支持的语言特性、可用的优化选项和编译器扩展。 4. 编译器选项和优化:PDF文档可能会提供关于GCC编译器选项和优化技术的详细信息。这些信息可以帮助开发人员更好地了解如何使用GCC编译器进行代码编译和优化,以提高代码性能和效率。 5. 跨平台支持和移植性:PDF文档可能会介绍GCC作为一个跨平台编译器的优势和特点。它可能会说明GCC可用于多种操作系统和硬件平台,并提供基于GCC的开发环境设置和配置方面的指导。 6. GCC扩展和插件:PDF文档可能会介绍GCC的扩展和插件生态系统,包括GCC插件开发和GCC扩展库的使用。它可能会提供关于如何为GCC开发和集成自定义编译器功能和扩展的指导。 总之,通过深入分析GCC PDF文档,我们可以获得关于GCC编译器的详细信息,包括其组成、支持的编程语言、编译器选项和优化技术,以及其在跨平台开发和扩展方面的特点和能力。这些信息对于开发人员来说非常有价值,可以帮助他们更好地使用GCC编译器进行开发和优化。 ### 回答2: GCC(GNU编译器集合)是一个开源的编程语言编译器套件,可以编译多种语言,如C、C++、Fortran等。GCC的开发由自由软件基金会(FSF)领导,并得到全球广泛的开发者社区的支持。 深入分析GCC PDF,首先要了解GCC的基本架构和工作原理。GCC由多个组件组成,包括前端、中端和后端。前端负责将不同的源代码转换为中间代码,中端进行中间代码的优化和转换,而后端根据目标平台将中间代码转换成机器码。 GCC PDF中通常包含GCC的各个组件的详细说明、接口定义和使用示例。可以从PDF中了解GCC的各个组件是如何协同工作的,每个组件的功能和作用分别是什么。这对于理解GCC的整体架构和代码编译的流程非常重要。 此外,GCC PDF还通常包含GCC支持的语言特性、编译选项和优化技术等相关信息。对于不同的语言特性和编译选项,PDF中可以提供详细的解释和示例,使开发者可以更好地理解和利用GCC提供的功能。 对于想要深入了解GCC的开发者来说,GCC PDF还可以提供GCC代码的详细解析和实现原理等内容。通过阅读PDF中的相关章节,可以更深入地了解GCC的内部工作机制和算法,对GCC进行二次开发或优化具有很大帮助。 总之,深入分析GCC PDF对于理解GCC的工作原理、代码结构和使用方式非常有帮助。通过研读PDF中的内容,可以更好地使用GCC进行代码编译、优化和开发,并为GCC的二次开发和改进提供理论基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值