检查是否进行了编译(Makefile)
我有一个makefile,它可以编译2个二进制文件,并在完成所有编译时显示每次编译的消息:检查是否进行了编译(Makefile),makefile,Makefile,我有一个makefile,它可以编译2个二进制文件,并在完成所有编译时显示每次编译的消息: $(NAME): $(NAME_S) $(NAME_C) @echo "\033[31mCompilation done!\033[0m" $(NAME_S): $(OBJS_S) @cc -o $(NAME_S) $(OBJS_S) @echo "\033[32mCompilation ser
$(NAME): $(NAME_S) $(NAME_C)
@echo "\033[31mCompilation done!\033[0m"
$(NAME_S): $(OBJS_S)
@cc -o $(NAME_S) $(OBJS_S)
@echo "\033[32mCompilation server done!\033[0m"
$(NAME_C): $(OBJS_C)
@cc -o $(NAME_C) $(OBJS_C)
@echo "\033[32mCompilation client done!\033[0m"
我的问题是,当这两个二进制文件是“最新的”并且我发送make时,会显示消息“编译完成了!”(这是正常的);但是我希望有一个默认消息,由makefile本身生成(“make:NothingtoBefor$(NAME)”)
提前感谢。一种方法是创建目标文件,因此make仅在其先决条件发生更改时才会尝试重新创建该目标 e、 g
您已经为
$(NAME)
定义了一个规则,因此“对$(NAME)”没有任何操作是不正确的。如果两次编译(在my.c上)之间没有更改,则makefile会放置此消息(如果我删除了第一个回显,则会有)。那么“不再进行编译”如何?
$(NAME): $(NAME_S) $(NAME_C)
@echo "\033[31mCompilation done!\033[0m"
@touch $(NAME)