makefile笔记02

3.伪目标
    伪目标没有依赖文件,但是我们可以为伪目标指定依赖文件。
伪目标可以作为默认目标,只要把它放在第一个位置就行了,例如
下面可以一次性生成多个可执行文件。
all:prog1 prog2 prog3
.PHONY:all
prog1:prog1.o
    gcc -o prog1.o
prog1.o:prog1.c
    gcc -c prog1.c
   
prog2:prog2.o
    gcc -o prog2.o
prog2.o:prog2.c
    gcc -c prog2.c
   
prog3:prog3.o
    gcc -o prog3.o
prog3.o:prog3.c
    gcc -c prog3.c
   
    目标也可以成为依赖,例如
.PHONY: cleanall cleanobj cleandiff
clean:
    rm *
cleanobj:
    rm *.o
cleandiff:
    rm *.diff
    因此我们可以依次清理想要清理的文件,例如我们想全部
删除文件,则输入make clean,我们想清除目标文件,则输入
make cleanobj

4.静态模式规则
objects=foo.o bar.o
all:$(objects)
$(objects):%.o:%.c
    $(CC) -c $(CFLAGS) $< -o $@
%.o:目标集合都是以.o结尾的
%.c:形成的目标文件都是.c结尾的
$<表示依赖目标
$@表示目标集

5.自动生成依赖性
    gcc -M main.c
自动寻找头文件且输出头文件
    gcc -MM main.c
自动寻找头文件,不输出系统头文件

6.显示命令
例如:makefile文件写
@echo compling the mian.c ....
则编译的时候输出:
    compling the main.c ...
   
7.命令执行
exec:
    cd /home/yangj; pwd
执行make exec则进入文件目录/home/yangj且打印
当前路径。

你可能感兴趣的:(makefile笔记02)