对Makefile进行抽象
动机
随着源文件的数量的增多,使用的类库越来越多,想要调整Makefile就需要更多的时间来思考,所以需要将Makefile当中一些有共性的地方抽象出来,让这个文件更加简洁,也降低出错的概率,降低失误带来的时间成本的消耗。
改进思路
- 使用变量来替代重复的内容,方便后期修改
- 使用隐含规则,降低编写makefile的成本
应用的技术点总结
有用的变量 @ ^ < <script type="math/tex" id="MathJax-Element-11">< </script>@ —— 目标文件(冒号前面的名称只在当前段内有效)
——指代所有的依赖(冒号后面的部分) < —— 指代第一个依赖(冒号后面第一个)Makefile的一个缺省规则
是(双)后缀名规则,似乎没有模式规则优越,暂时够用了
.cpp.o:
gcc -c $<
- 定义变量的规则
TARGET : 生成的目标文件
OBJ : 中间obj文件
CC : 使用的编译器
LIB : 使用的链接库
LIB_DIR : 链接库所在的文件路径
INCLUDE : 包含头文件的路径
CFLAGS: 编译器的命令