gpt4 book ai didi

无法在 Gnu-Make 中禁用 "default"后缀规则

转载 作者:行者123 更新时间:2023-12-04 00:12:56 25 4
gpt4 key购买 nike

我的 Makefile 如下所示:

.SUFFIXES:foo


# Disable "default" suffix-rules.
MAKEFLAGS=-r


# A rule without a recipe!
all.o::

# File 'all.c' is "ought to exist".
all.c:
touch '$@'


执行,我得到:

# Gnu-make still applies the "default" suffix-rule '.c.o'. Wrong?
$ make
cc -c -o all.o all.c


为什么我不能禁用后缀规则?

最佳答案

问题是添加 -r 标志只会删除 default 后缀规则设置。当您使用 .SUFFIXES: foo 时,您正在向现有设置添加新的后缀规则。执行此操作后,.SUFFIXES 的值不再与默认值相同,因此添加 -r 标志不会更改它。如果您想在 Savannah 上提交它,这可以被认为是一个有用的增强请求。 .

如果你想使用新的后缀规则而不是任何预定义的规则,你可以使用一直可用的方法,甚至是 POSIX 标准所要求的;首先删除所有现有的,然后添加新的:

.SUFFIXES:
.SUFFIXES: foo

关于无法在 Gnu-Make 中禁用 "default"后缀规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32546232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com