- Makefile 教程
- Makefile - 主页
- Makefile - 为什么使用 Makefile?
- Makefile - 宏
- Makefile - 依赖项
- Makefile - 规则
- Makefile - 后缀规则
- Makefile - 指令
- Makefile - 重新编译
- Makefile - 其他功能
- Makefile - 示例
- Makefile 快速指南
- Makefile - 快速指南
- Makefile - 有用资源
- Makefile - 讨论
在 Makefile 中定义自定义后缀规则
Make 可以使用 cc -c 自动创建 .o 文件,对应于 .c 文件。这些规则已内置到 make 中,你可以利用此优势来缩短 Makefile。如果你仅在 Makefile 中的依赖关系行中指出了 Makefile 所依赖的 .h 文件,make 会知道它也需要相应的 .c 文件。你无需输入编译器命令。
这样会进一步精简 Makefile,如下所示:-
OBJECTS = main.o hello.o factorial.o hello: $(OBJECTS) cc $(OBJECTS) -o hello hellp.o: functions.h main.o: functions.h factorial.o: functions.h
make 使用名为 .SUFFIXES 的特殊目标,让你可以定义自己的后缀。例如,参见下面给出的依赖项行:-
.SUFFIXES: .foo .bar
它告知 make 你将使用这些特殊后缀来制定自己的规则。
与 make 已知从 .c 文件生成 .o 文件的方式类似,你可以按照以下方式定义规则:-
.foo.bar: tr '[A-Z][a-z]' '[N-Z][A-M][n-z][a-m]' < $< > $@ .c.o: $(CC) $(CFLAGS) -c $<
第一个规则让你可以从 .foo 文件创建 .bar 文件。它基本上会扰乱文件。第二个规则是 make 用来从 .c 文件创建 .o 文件的默认规则。
广告