makefile小记
#1.伪目标
关键字:.PHONY
#example obj = test.o .PHONY:clean all $(all): ar crv lib_test.a $(obj) obj:%.o:%.c gcc -c $< -o $@ clean: rm -f *.a *.o *.so SRC = ./test.c
#2几个特殊符号:
$@表示目标集
$<表示第一个依赖的文件
$^所有依赖文件
#3静态模式
#<target>:<target pattern>:<rely on pattern>
#target表示我们真正的目标,target pattern表示目标集的匹配方式,rely on pattern表示目标依赖模式
#例如target表示一系列.o文件,target pattern就可以用一些通配符表示这些.o,例如*.o,relay on pattern就表示
example:
CC=gcc CFLAGS += all:$(obj) $(obj):%.c:%.h $(CC) -c $(CFLAGS) $< -o $@ ar crv *.o lib_test.a
#一些命令
3.makefile命令
@echo xxxxx 如果没有@符号则会输出 echo xxxxx make -n 只显示命令,但是不执行命令,可以用来调试makefile make -s 全面禁止命令的显示 如果希望上一条命令的执行结果对下一条命令有效,则不能把这两个命令写在两行,应该用;号隔开,写在同一行 obj: cd /home/;pwd