1 / 4
文档名称:

UNIX系统开发-编译过程概述.doc

格式:doc   页数:4
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

UNIX系统开发-编译过程概述.doc

上传人:管理资源吧 2012/2/6 文件大小:0 KB

下载得到文件列表

UNIX系统开发-编译过程概述.doc

文档介绍

文档介绍:UNIX系统开发-编译过程概述
编译过程概述
了解一些编译知识的读者都知道,所谓编译,就是在编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。
UNIX环境下的C编译系统所遵循的也是这么一个一般的过程。值得注意的是这个过程并不是有某个单个程序完成的,而是有多个分别完成某一方面工作的程序组合完成的。这一设计思想同我们最初提到的UNIX系统软件功能专一的特点是相符的。
归纳起来,可以将UNIX环境下C编译系统的工作过程下图所示。
C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件
命令来完成对源程序的编译工作。此cc命令并不是一个二进制的可执行程序,而是一个shell命令文件。它的工作就是依次调用我们上面所列出的各个完成某部分工作的具体程序,将指定的c源程序转换成可执行的代码。

在此阶段,预编译程序读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。C语言中的伪指令主要包括以下四个方面
(1)宏定义指令,如# define Name TokenString,#undef等。对于前一个伪指令,预编译所要作得的是将程序中的所有Name用TokenString替换,但作为字符串常量的Name则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。
(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif,等等。这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉
(3)头文件包含指令,如#include "FileName"或者#include <FileName>等。在头文件中一般用伪指令#define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。采用头文件的目的主要是为了使某些定义可以供多个不同的C源程序使用。因为在需要用到这些定义的C源程序中,只需加上一条#include语句即可,而不必再在此文件中将这些定义重复一遍。预编译程序将把头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理。
包含到c源程序中的头文件可以是系统提供的,这些头文件一般被放在/usr/include目录下。在程序中#include它们要使用尖括号(<>)。另外开发人员也可以定义自己的头文件,这些文件一般与c源程序放在同一目录下,此时在#include中要用双引号("")。关于预编译程序如何搜索头文件,后面我们将要介绍。
(4)特殊符号,预编译程序可以识别一些特殊的符号。例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。
从上述过程我们可以看到,预编译程序所完成的基本上是对源程序的“替代”工作。经过此种替代,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,但内容有所不同。下一步,此输出

最近更新

绿色发展视角下的供给策略 37页

2025年四平职业大学马克思主义基本原理概论期.. 12页

高效节能环保型压缩机材料的应用前景 28页

高精度材质映射在虚拟现实中的应用 36页

羽绒加工废水循环利用体系 35页

2025年天津警察学院马克思主义基本原理概论期.. 13页

2025年太原幼儿师范高等专科学校马克思主义基.. 12页

绿色环保采选技术 38页

网络食品供应链安全 38页

2025年宜宾医药健康职业学院马克思主义基本原.. 13页

聚类分析在青光眼患者群体划分中的方法探讨 25页

绿色高效选矿工艺 36页

肺功能康复训练研究 36页

2025年山西机电职业技术学院马克思主义基本原.. 13页

2025年嵩明县幼儿园教师招教考试备考题库带答.. 30页

2025年广东农工商职业技术学院马克思主义基本.. 12页

2025年广西理工职业技术学院单招职业技能测试.. 45页

2025年德保县幼儿园教师招教考试备考题库附答.. 31页

2025年托里县招教考试备考题库带答案解析(夺.. 30页

2025年施甸县招教考试备考题库附答案解析(必.. 30页

2025年杭州职业技术大学马克思主义基本原理概.. 12页

2025年桐柏县招教考试备考题库带答案解析(必.. 30页

2025年武昌职业学院马克思主义基本原理概论期.. 12页

2025年永兴县幼儿园教师招教考试备考题库及答.. 31页

2025年江西信息应用职业技术学院马克思主义基.. 12页

2025年江西经济管理职业学院马克思主义基本原.. 12页

2025年沧州幼儿师范高等专科学校马克思主义基.. 13页

2025年河南对外经济贸易职业学院单招综合素质.. 44页

2025年济南幼儿师范高等专科学校马克思主义基.. 12页

2025年浙江科技大学马克思主义基本原理概论期.. 13页