Compilation Makefile在每次不编译的情况下打印消息 我有一个Mag文件,编译并链接几个C++项目,一般来说,我希望它为每个编译/链接的项目打印一个消息,但只有当它必须为该目标做一些事情时才可以。我有这样的想法: Project_1: print_1 main_1.o $(Objects_1) ${CXX} main_1.o $(Objects_1) -o $@ ${CXXLDFLAGS} print_1: @echo "Project 1" $(DIR_BLD_CXX)/main_1.o: $(DIR_SRC_CXX)/main_1.cpp $(Hfiles_1) ${CXX} -c $(DIR_SRC_CXX)/main_1.cpp ${MYCXXFLAGS} -o $@

Compilation Makefile在每次不编译的情况下打印消息 我有一个Mag文件,编译并链接几个C++项目,一般来说,我希望它为每个编译/链接的项目打印一个消息,但只有当它必须为该目标做一些事情时才可以。我有这样的想法: Project_1: print_1 main_1.o $(Objects_1) ${CXX} main_1.o $(Objects_1) -o $@ ${CXXLDFLAGS} print_1: @echo "Project 1" $(DIR_BLD_CXX)/main_1.o: $(DIR_SRC_CXX)/main_1.cpp $(Hfiles_1) ${CXX} -c $(DIR_SRC_CXX)/main_1.cpp ${MYCXXFLAGS} -o $@,compilation,makefile,linker,echo,Compilation,Makefile,Linker,Echo,这是有效的;然而,无论何时何地,我都使用虚假目标(?)来打印它每次都将编译/链接的内容,而不管相关内容是否已更改 是否有一种方法可以在某些目标上打印消息,但只有在某些内容发生更改时,这意味着必须编译目标?您希望它为某些目标打印消息,即使make没有(或没有)任何针对这些目标的内容?如果不清楚,请恕我直言:这正是我想要避免的;我希望它打印消息,但仅当它必须为目标做一些事情时。哦,事实上,每次有消息时它都会编译/链接,我想我必须编辑问题,用要运行的命令在配方中粘贴回音,它只会在目标配方运行时运行/打

这是有效的;然而,无论何时何地,我都使用虚假目标(?)来打印它每次都将编译/链接的内容,而不管相关内容是否已更改


是否有一种方法可以在某些目标上打印消息,但只有在某些内容发生更改时,这意味着必须编译目标?

您希望它为某些目标打印消息,即使make没有(或没有)任何针对这些目标的内容?如果不清楚,请恕我直言:这正是我想要避免的;我希望它打印消息,但仅当它必须为目标做一些事情时。哦,事实上,每次有消息时它都会编译/链接,我想我必须编辑问题,用要运行的命令在配方中粘贴回音,它只会在目标配方运行时运行/打印。目标每次运行的原因是
print\u 1
不是真正的文件,并且总是“新的”。你的聪明程度超出了你应该做的,从而导致了你试图解决的问题。只需将
echo
${CXX}
命令放在
Project_1
的配方中,就可以完成了。啊,谢谢,这很有效!然而,理想情况下,我希望它为每个项目打印一条消息(因此在编译目标文件和链接之前),但是如果我使用编译命令粘贴echo,它将仅使用该命令打印(或者如果使用all粘贴echo,它们都会更改),如果使用linking命令粘贴echo,它将在编译之后打印。。我必须使用一些条件句吗?