一、联系&区别
make是一个命令,makefile是一个文件,当makefile文件写好后,只需要一个make 命令就可以将makefile文件运行起来。
二、make 命令
make命令是GNU的工程化编译工具,它用于编译大量互相关联的源代码,使用它可以实现项目的工程化管理,提高开发效率。make命令不仅仅用于编译程序,无论何时,当需要通过多个输入文件来生成输出文件时,你都可以利用它来完成任务。它的其他用法还包括文档处理。
三、makefile 文件的编写
四、作用
Makefile的作用就是在执行make命令的时候指定编译和链接的规则, makefile文件由一组依赖关系和规则构成。它关系到整个项目工程的编译规则。哪些文件需要先编译,哪些要后编译,哪些需要重新编译等复杂的操作。Makefile文件就像shell脚本一样,在其中也可以执行操作系统的命令。关系到整个工程的编译规则,也可执行操作系统的命令, 实现自动化编译整个过程,提高编译效率。
五、原理
Make是解释MakeFile中指令的命令工具。
当我们输入make时:
i.make 首先会在当前目录下寻找makefile文件,接下来寻找Makefile文件。
ii.如果找到,它会找到文件中的第一个目标文件(main),并把这个文件作为最终的目标文件。
iii.如果main文件不存在或者是main所依赖的后面的.o。文件的修改时间要比main这个文件新,那么,他就会执行后面所定义的命令来生成main这个文件。
iv.如果main所依赖的.o文件也存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件。
v.由于我的c文件和h文件都是存在的,所以make会生成.o文件,然后再用.o
文件声明make的最终文件,也就是执行文件main.