Makefile 显示自定义消息时使用隐式规则

Makefile 显示自定义消息时使用隐式规则,makefile,Makefile,假设我想要隐式规则提供的好处,同时以以下形式显示进度消息: Compiling [main.cpp] (...) Linking... 用消息写入%.o:%.cpp规则将替换隐式规则。 而明确地编写整个规则将无法实现使用隐式规则的目标。 那么,有什么建议吗 PS:如果make目前无法做到这一点,那也没关系。 PPS:无CMAKE 购买力平价:否类似这样的内容: %.o: %.cpp @echo compiling $< $(CC) -c $(CXXFLAGS) $(DEF

假设我想要隐式规则提供的好处,同时以以下形式显示进度消息:

Compiling [main.cpp]
(...)
Linking...
用消息写入
%.o:%.cpp
规则将替换隐式规则。

而明确地编写整个规则将无法实现使用隐式规则的目标。
那么,有什么建议吗

PS:如果make目前无法做到这一点,那也没关系。
PPS:无CMAKE
购买力平价:类似这样的内容:

%.o: %.cpp
    @echo compiling $<
    $(CC) -c $(CXXFLAGS) $(DEFS) $< -o $@
%.o:%.cpp
@回声编译$<
$(CC)-c$(CXXFLAGS)$(DEFS)$<-o$@
类似这样的内容:

%.o: %.cpp
    @echo compiling $<
    $(CC) -c $(CXXFLAGS) $(DEFS) $< -o $@
%.o:%.cpp
@回声编译$<
$(CC)-c$(CXXFLAGS)$(DEFS)$<-o$@
<代码> > p>因为<代码> $(CXX)< /C> >编译C++源代码,<代码> $(CC)< /COD>用于链接对象,我可以将<代码> ECHOR> <代码>两个。

CC = @echo "Linking..."; g++
CXX = @echo "Compiling [$<]"; g++
CC=@echo“链接…”;g++
CX=“ECHO”编译[$< >因为<代码> $>(CXX)< /C> >编译C++源代码,<代码>(CC)< /COD>用于链接对象,我可以将<代码> ECHOR> <代码>两个。

CC = @echo "Linking..."; g++
CXX = @echo "Compiling [$<]"; g++
CC=@echo“链接…”;g++

CXX=@echo“编译[$”并显式编写整个规则会挫败使用隐式规则的目标。“您没有正确阅读我的问题。哦,对不起……是的,您可能需要一个类似bash文件的变通方法。”而显式编写整个规则会挫败使用隐式规则的目标。”您没有正确阅读我的问题。哦,对不起……是的,您可能需要一个类似bash文件的解决方案。答案是否与您想要的足够接近?您可以巧妙地使用
$(eval)将其调整为只输出一次消息
如果需要的话。@EtanReisner关闭了,但它给了我一个如何做的想法。你可以在
COMPILE.cpp
中预先编写一些东西来做你想做的部分事情,但是正确地将
$@
放在那里,这让我很快就逃脱了。我很好奇,看看你想出了什么。@EtanReisner将它作为下面的答案发布。这是clos的答案吗您可以通过巧妙地使用
$(eval)将其调整为只输出一次消息
如果需要的话。@EtanReisner关闭了,但它给了我一个如何做的想法。你可以在
COMPILE.cpp
中预先准备一些东西,做你想做的部分事情,但是正确地把
$@
放在那里,我很快就逃脱了。我很好奇,看看你想出了什么。@EtanReisner将它作为下面的答案发布。
$(CC)在其他地方使用,但这并不总是正确的。@伊坦瑞斯纳,我知道,它也用于编译C文件,但是我现在只与C++工作,所以它符合我的需要。<代码> $(CC)“/CODEX”在其他地方使用,但这并不总是正确的。“我知道,它也被用来编译C文件,但是我现在只与C++工作,所以它符合我的需要。