编写简单程序时,程序员会在编辑完源程序文件后重新编译所有文件来重建应用程序。但对大型程序来说,使用这种简单的处理方式会带来一些明显的问题:编辑—编译—测试这一循环的周期将变长,如果仅仅改动一个源文件,需要重新编译所有的源文件。另外,在多个头文件的项目中,由于每个源文件依赖的头文件可能不一样,更新其中某一个头文件时需要重新编译所有受影响的源文件,这部分工作非常的繁琐而容易出错。
make工具可以完美的解决上述问题。make命令内置了多种智能机制,同时构造了makefile文件,告诉编译器应用程序该如何构造。makefile文件一般和项目的其他源文件放在同一目录下,大的项目可以拥有多个makefile文件分别管理项目的不同部分。
makefile文件由一组依赖关系和规则构成。每个依赖关系由一个目标(即将要创建的文件)和一组该目标所依赖的源文件组成。而规则描述了如何通过这些依赖文件创建目标。一般来说,目标是一个单独的可执行文件。
make命令会读取makefile文件的内容,它先确定目标文件或要创建的文件,然后比较该目标所依赖的源文件的日期和时间以决定该采用哪条规则来构造目标。通常在创建最终的目标文件之前,它需要先创建一些中间目标。make命令会根据makefile文件来确定目标文件的创建顺序以及正确的规则调用顺序。[1]
make程序本身有许多选项,其中最常用的3个选项如下所示:
依赖关系定义了最终应用程序里的每个文件与源文件之间的关系。依赖关系表示例如下:
myapp: main.o 2.o 3.o
main.o: main.c a.h
2.o: 2.c a.h b.h
3.o: 3.c b.h c.h
<< · Back Index ·>>
很多同学可能对自己的专业不满意,或者对其他专业有着强烈的兴趣,或者无法跟上本专业学习内容。每年都会有很多同学考虑转专 ...