Makefile clean所有目标在显式调用时被调用两次

时间:2014-06-06 10:42:44

标签: makefile

我仍在弄清楚为什么在下面的Makefile中,当我在像 make clean all 这样的命令中执行它时,它会运行两次"清除所有"目标部分?

FLAGS = -g -Wall -Wextra -Werror

a.out : check.cpp
    $(CXX) $(CFLAGS) -o $@ $< 

clean all:
    rm -rf *.o *.out *.txt

1 个答案:

答案 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一样的做法都很奇怪。