为什么需要Makefile
Makefile使用来管理工程的。
在一个正式的软件项目中,由多个.c和.h文件构成,此时如果直接在命令行编译,就会像这样:gcc a.c b.c c.c d.c … z.c -o exe,每次编译都要输入一堆东西,很麻烦,这个问题严重影响工作效率,怎么办?Makefile来解决
一个简单的Makefile示例
exe: a.c b.c
gcc a.c b.c -o exe
clean:
rm exe
Makefile中的一些基本概念
- 目标:目标顶格写,后面加冒号
- 依赖:依赖时用来产生目标的原材料
- 命令:命令前面一定时Tab,不是顶格,也不是多个空格。命令就是要生成那个目标的动作
Makefile的基本工作原理
- 当我们执行make 【目标】 的时候,Makefile会自动执行【目标】下面的语句
- 当我们执行make 【目标】的时候,是否执行命令时却决于依赖的。依赖如果成立就会执行命令,否则不执行。
- 我们直接执行make和make 【第一个目标】效果是一样的,第一个目标其实就是默认目标。