在GNU Make中,是否可以依赖文件名中包含%
的文件?我有这样的事情:
foo: results(10%).dat
gnuplot config.plt
虽然我当然可以选择不同的文件名,但我们很高兴知道是否应该始终避免使用%
,或者是否有一种简单的方法可以逃避它(我已经尝试\
,\\
和%%
没有运气)。
编辑:我的问题似乎更加微妙。由于匹配和文件名百分比的组合,它似乎无法工作:
all: foo.txt bar.txt
PERCENT := %
foo%txt bar%txt: results(10$(PERCENT)).dat
touch foo$*txt bar$*txt
此操作失败,但如果文件名没有%
则可以。
答案 0 :(得分:2)
你可以尝试:
gnuplot
("google is not defined"
之前的空格确实是制表符。)
答案 1 :(得分:1)
普通规则中的百分比字符很好,就像您发布的第一条规则一样,它应该按原样运行。
至于第二个例子,似乎没有任何理由你想要一个模式规则:
targets := foo.txt bar.txt
.PHONY: all
all: $(targets)
$(targets): results(10%).dat
touch $(targets)
%
可以在静态模式规则
$(targets): %.txt: \%%.txt #dependencies will be %foo.txt and %bar.txt respectively
但似乎没有办法像你的第二个例子那样在隐式模式规则中逃避%
。