1、makefile的定义
一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本 一样,其中也可以执行操作系统的命令。
2、makefile的命名
(1)、makefile
(2)、Makefile
注:makefile的名字只有这两种,不能出现这两种以外的其他形式
3、makefile的命名规则
(1)、三要素:目标,依赖,命令
(2)、makefile的内部型编写形式:
目标 : 依赖条件
Tab键 命令
5、makefile中的变量
(1)、规则
%o : %c
Tab键 gcc -c $< -o $@
(2)、makefile中的自动变量
(a)、$< : 规则中的第一个依赖
(b)、$@ : 规则中的目标
(c)、$^ : 规则中的所有依赖
(3)、makefile中系统自己维护的变量
(a)、CC = cc (其实 cc 是系统默认的gcc ,当然 CC 的值可以赋值 )
(b)、CPPFLAGS = -I ( 编译时需要的参数 )
接下来详细给大家介绍下 编写 makefile 文件 的过程,从初级makefile---------> 中级makefile----------->高级makefile-------------->终极makefile
(1)、初级makefile
通过写 makefile 减少了 编译运行程序时,繁杂冗余的命令出现
(2)、中级makefile
中级makefile 比初级makefile 更好一点,主要是因为: 初级的makefile在任何时候,只要其中的一个依赖文件改变,就必须重新编译,这样会导致大量时间被浪费。
如果所依赖的文件比较多的话,那么编译就会耗费大量时间。而中级makefile 会根据哪一个依赖项 发生改变,则这个目标文件重新编译,不用全部重新编译 。
(3)、高级makefile
高级makefile 的性能就更好了,而且比较标准和规范化,用到了变量和公式,避免了makefile中出现大量的相同代码
(4)、终极makefile
终极makefiel是写 makefile的终极目标,相信写成这样 大部分非专业人不容易看懂,感觉很厉害的哦哦哦。但是,当你了解makefile里面的语法,你就会觉得很简单哦哦。
小结:
在这里建议写项目的时候,可以使用makefile ,这样会使项目代码管理方便,运行方便,节省时间等。