Q:为什么需要makefile
A:对大型程序来说,如果只修改了一部分文件,不应对所有源文件重新编译。而make命令可以只重新编译所有受改动影响的源文件,但是你必须要提供一个文件告诉make怎么构造,这个文件就叫makefile。
make介绍
make命令选项和参数
-k 发现错误时继续执行
-n 输出要执行的步骤,但不执行
·-f <filename> 指定makefile文件
makefile的语法
- 依赖关系
目标名称 + 冒号 + 空格或tab + 用于创建目标文件的文件列表(用空格或tab隔开)
myapp: main.o 2.o 3.o
main.o: main.c a.h
2.o: 2.c a.h b.h
3.o: 3.c b.h c.h
表明目标myapp依赖于main.o、2.o和3.o 而main.o依赖于main.c和a.h
- 规则
定义目标文件的创建方式,规则所在行必须以tab开头
myapp: main.o 2.o 3.o
gcc –o myapp main.o 2.o 3.o
- 注释
注释以#开头,一直延续到这一行结束