Makefile学习笔记
第一个例子
gcc -o hello hello.c
利用Makefile,可以写成
hello : hello.c
gcc -o hello hello.c
make一下,可以看到执行了gcc -o hello hello.c命令,生成了hello文件。只要目标hello还在,或者依赖hello.c未修改,再make就不会执行下面的命令。
第一个例子优化
hello : hello.c
gcc -o $@ @<
@ 和 @ < 分别表示目标和第一个依赖文件, @和@<分别表示目标和第一个依赖文件, @和@<分别表示目标和第一个依赖文件,^表示所有的依赖文件。
多文件Makefile编写
五个文件hello.c,src1.c,src1.h,src2.c,src2.h,每个生成对应.o文件,组后链接为hello可执行文件
hello : hello.o src1.o src2.o
gcc -o $@ $^
hello.o : hello.c src1.h src2.h
gcc -c $^
src1.o : src1.c
gcc -c $<
src2.o : src2.c
gcc -c $<
clean :
rm *.o hello
这样写太麻烦,可以优化为
cc = gcc
hello : *.o
$(cc) -o $@ $^
%.o : %.c
$(cc) -c $^
clean :
rm *.o hello