假设我正在处理一个Makefile,并且在顶部有以下变量声明:
FILES = file1.cpp file2.cpp file3.cpp
现在假设我想使用特殊命令编译它们,而不需要像这样指定每个目标:
file1.o : file1.cpp
custom_command file1.cpp
file2.o : file2.cpp
custom_command file2.cpp
file3.o : file3.cpp
custom_command file3.cpp
使用我上面声明的$(FILES)
变量有更好的方法吗?
比如:
$(FILES:.cpp=.o) : $(FILES)
custom_command $(FILES)
...只需要对$(FILES)
变量中的每个文件执行此操作。
.c.o
规则在GNU-make中被称为后缀规则。GNU-make建议使用模式规则而不是后缀规则。 - user650654