Gun Make手册学习----2

初步介绍

在执行make之前,需要编写一个Makefile文件,来告诉make命令需要做什么,因为在shell中执行make命令的依赖是Makefile文件。通常,make工具主要用来进行工程的编译和程序链接。
make通过比较对应文件(规则的目标和依赖)的最后修改时间,来决定那些文件需要更新,那些文件不需要更新,对需要更新的文件make就执行数据库中所记录的相应命令(make读取Makefile以后会建立一个编译过程的描述数据库,此数据库中记录了所有各个文件之间的相互关系,以及它们的关系描述)来重建它,对于不需要重建的文件make什么也不做。
本节将分析一个简单的Makefile文件,对一个包含8个C代码的源程序和三个头文件的工程进行编译和链接。这个Makefile提供给了make必要的信息,make程序根据Makefile中的规则描述执行相关的命令来完成指定的任务(如:编译,链接和清除编译过程文件等)。
当使用mak工具进行编译时,工程中一下几种文件在执行make时将会被编译(重新编译):
1)所有的源文件没有被编译过,则对各个C源文件进行编译并进行链接,生成最后的可执行程序;
2)每一个在上次执行make之后修改过的C源代码文件在本次执行make时将会被重新编译;
3)头文件在上一次执行make之后被修改,则所有包含此头文件的C源文件在本次执行make时将会被重新编译。

后面两种情况时make只将修改过的C源文件重新编译生成.o文件,对于没有修改的文件不进行任何工作,重新编译过程中,任何一个源文件的修改将产生新的对应的.o文件,新的.o文件将和以前的已经存在,此次没有重新编译的.o文件重新链接生成最后的可执行程序。

发布了53 篇原创文章 · 获赞 16 · 访问量 2213

猜你喜欢

转载自blog.csdn.net/m0_37757533/article/details/105173008
今日推荐