1.文件基本构成
目标文件 分隔符 依赖文件 [;命令]
[命令]
[命令]
命令行以一个Tab开始,[;命令] 该命令可选
2.执行
make 默认makefile为文件名
make -f othername 使用othername作为文件名
make --file=othername 使用othername作为文件名
3.命令行属性
在Tab后加上“+”、“-”,“@”
“+”:本行命令总是执行(文件已经过时)
“-”:如果执行本句是出错,不退出make
“@”:执行本句时不打印
4.伪目标
伪目标不要求生成实际的文件,使用“.PHONY”说明为伪目标文件
5.目标文件
把生成第一个目标文件作为最终生成的文件
6.需要生成多个可执行文件
可以使用伪目标文件的形式,将第一个文件设置为伪目标文件,伪目标包含所需要生成的多个可执行文件
7.实例
(1)需要生成的目标文件test
源文件:test.c含有main()
其他源文件:max.c max.h min.c min.h
test:test.o max.o min.o
gcc -o test test.o max.o min.o
test.o:test.c max.h min.h
gcc -c test #注意是-c
max.o:max.c max.h
gcc -c max.c
min.o:min.c min.h
gcc -c min.c
.PHONY:clean #clean是一个为目标,名称可以是其他的
clean:
rm *.o test #删除目标文件和中间文件,输入make clean
执行make后生成test
执行make clean 删除中间文件以及目标文件
(2)多个目标文件
在上面例子的基础上,加入含有源文件demo.c(有main()函数)
.PHONY all
all:demo test
demo:demo.c
gcc -o demo demo.c
test:test.o max.o min.o
gcc -o test test.o max.o min.o
test.o:test.c max.h min.h
gcc -c test #注意是-c
max.o:max.c max.h
gcc -c max.c
min.o:min.c min.h
gcc -c min.c
.PHONY:clean #clean是一个为目标,名称可以是其他的
clean:
rm *.o test demo #删除目标文件和中间文件,输入make clean
执行make后生成test以及demo
执行make clean 删除中间文件以及目标文件