[Makefile]
[1] 规则
目标: 依赖
[TAB]命令(命令名 参数 依赖 目标)
[2] 难点
1. 自动变量
作用域在一个规则中, 如: $@(目标, 每条规则都只有一个目标), $<(第一个依赖), $^(所有依赖)
例:
hello.o world.o: hello.h
等价于
hello.o: hello.h
world.o: hello.h
2. 模式规则
%.o: %.c
[TAB]$(CC) $(CFLAGS) -c -o $@ $<
3. 自动推倒
要生成的目标没有显示的规则,这时会去找通用规则(模式规则),找通用规则的过程叫自动推导
寻找规则的过程:
1. 在Makefile中,寻找生成hello.o的规则,如果找到...
如:
hello.o: hello.c
2. 在Makefile中, 寻找模式规则, 如果找到匹配的模式规则, 需要查看当前目录下是否有模式规则需要的依赖文件
[1] 规则
目标: 依赖
[TAB]命令(命令名 参数 依赖 目标)
[2] 难点
1. 自动变量
作用域在一个规则中, 如: $@(目标, 每条规则都只有一个目标), $<(第一个依赖), $^(所有依赖)
例:
hello.o world.o: hello.h
等价于
hello.o: hello.h
world.o: hello.h
2. 模式规则
%.o: %.c
[TAB]$(CC) $(CFLAGS) -c -o $@ $<
3. 自动推倒
要生成的目标没有显示的规则,这时会去找通用规则(模式规则),找通用规则的过程叫自动推导
寻找规则的过程:
1. 在Makefile中,寻找生成hello.o的规则,如果找到...
如:
hello.o: hello.c
2. 在Makefile中, 寻找模式规则, 如果找到匹配的模式规则, 需要查看当前目录下是否有模式规则需要的依赖文件