目标 .SUFFIX 在 Makefile 中是不是有任何意义?
Posted
技术标签:
【中文标题】目标 .SUFFIX 在 Makefile 中是不是有任何意义?【英文标题】:Does the target .SUFFIX have any meaning in a Makefile?目标 .SUFFIX 在 Makefile 中是否有任何意义? 【发布时间】:2021-07-05 05:41:40 【问题描述】:在我遇到的 Makefile 中:
.SUFFIX: .c
这是.SUFFIXES: .c
的拼写错误吗,因为我找不到任何关于.SUFFIX
的信息。这有什么作用吗?
如果 Makefile 只使用模式规则,我什至需要在 Makefile 中使用它吗?
【问题讨论】:
【参考方案1】:假设您使用的是 GNU make,除非确实有一个名为 .SUFFIX
的用户目标,否则这可能是 .SUFFIXES: .c
的拼写错误。如果没有配方,您可以安全地删除它:没有配方就没有用处。
如果是 .SUFFIXES: .c
并且如果它有一个配方,它将重新定义以下隐含规则:
%: %.c
<recipe>
这是:
LINK.c = $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
%: %.c
$(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@
【讨论】:
以上是关于目标 .SUFFIX 在 Makefile 中是不是有任何意义?的主要内容,如果未能解决你的问题,请参考以下文章