0708学习记录

来源:互联网 发布:三峡大学网络教育 编辑:程序博客网 时间:2024/06/10 14:33

今天学习的主要内容是Makefile。首先说下Make工程管理器,它是完全根据Makefile文件中的编译规则命令进行工作的。

Makefile的好处:自动化编译,一旦写好,只需要一个make命令,整个工程自动化编译,极大提高软件的编译效率,作为一个好的程序员,makefile必须有所了解。

Makefile文件由以下三项基本内容组成。

(1)需要生成的目标文件(Target file)

(2)生成目标文件所需要的依赖文件(dependency file)

(3)生成目标文件的编译规则命令行(command)

第二点讲下Make的工作方式,分以下7个步骤:

1:读入所有的Makefile

2:读入被include的其它Makefile

3:初始化文件中的变量

4:推导隐晦规则,并分析所有规则

5:为所有目标文件创建关系链

6:根据依赖关系,决定哪些目标文件重新生成

7:执行生成命令

Make工程管理器编译tset程序的过程如下。

(1)Make工程管理器首先会在当前目录下读取Makefile文件。

(2)查找Makefile文件中的第一个目标文件,该文件也是Make工程管理器本次编译任务的最终目标。

(3)把目标文件的依赖文件当做目标文件进行依赖规则检查。这是一个递归的过程。Make会根据以下三种情况进行处理

1.如果当前目录下没有或者缺少依赖文件,则执行其规则命令生成依赖文件

2.如果存在依赖文件,则把其作为目标文件来检查依赖规则

3.如果目标文件比所有文件依赖文件新,则不做处理。

(4)递归执行第三步后,就会得到目标文件所有最新的依赖文件了。接着Make会根据以下三种情况进行处理

如果目标文件不存在,则执行规则命令生成test

如果目标文件test存在,但存在比test要新的依赖文件,则执行规则命令更新test

目标文件test存在,且比所有依赖文件新,则不做处理


0 0