Makefile的好处:自动化编译
Makefile的一般写法:
test(目标文件): prog.o code.o(依赖文件列表)
tab(至少一个tab的位置) gcc prog.o code.o -o test(命令)
......
一个Makefile文件主要含有一系列的规则,每条规则包含以下内容:一个目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如“clean”;一个或多个以来文件的列表,通常是编译慕白噢文件所需要的其他文件。之后的一系列命令,是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,并以tab键开头,(初学者注意,是Tab而不是空格)
示例Makefile:
test: prog.o code.o
gcc prog.o code.o -o test
prog.o: prog.c code.h
gcc -c prog.c -o code.o
code.o: code.c code.h
gcc -c code.c -o code.o
clean:
rm -f *.o test
Makefile定义宏,改写上面的Makefile文件:
OBJS = prog.o code.o
CC = gcc
test: $(OBJS)
$(CC) prog.o code.o -o test
prog.o: prog.c code.h
$(CC) -c prog.c -o code.o
code.o: code.c code.h
$(CC) -c code.c -o code.o
clean:
rm -f *.o test
执行以上Makefile文件后就会自动化编译:
$ make
gcc -c prog.c -o prog.o
gcc -c code.c -o code.o
gcc prog.o code.o -o test
最后就会产生prog.o code.o test这三个文件。