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

  

 

posted @ 2018-01-31 00:25  24k的帅哥  阅读(122)  评论(0编辑  收藏  举报