我仍在弄清楚为什么在下面的Makefile中,当我在像 make clean all 这样的命令中执行它时,它会运行两次"清除所有"目标部分?
FLAGS = -g -Wall -Wextra -Werror
a.out : check.cpp
$(CXX) $(CFLAGS) -o $@ $<
clean all:
rm -rf *.o *.out *.txt
答案 0 :(得分:3)
目标&#34;全部清理:&#34;相当于:
clean:
rm -rf *.o *.out *.txt
all:
rm -rf *.o *.out *.txt
目标名称中不能包含空格,每个单词都会被视为目标。所以当你做make clean all
时,make认为你想要建立目标&#34;清洁&#34;和目标&#34;所有&#34;所以你有2个目标被执行。它确实看起来像makefile中的一个错误,因为所有与clean一样的做法都很奇怪。