我是编程新手。
我需要帮助我在makefile中隐藏一条消息。 让我告诉你:
编译这组文件时(grid.cc attribute.cc targa.cc)http://prntscr.com/67ack4
我看到这条消息:gcc5 -Wall -O2 -pipe -mtune = i686 -c attribute.cc
我想为我辩护:编译targa.cc 我想为我辩护一下:编译attribute.cc 等等 等...
我希望你理解我的意思。
这是我的makefile:
BIN = ../libgame.a
CXX = gcc5
CFLAGS = -Wall -O2 -pipe -mtune=i686
OBJFILES = grid.o attribute.o targa.o
########################################################################################################
default:
$(CXX) $(CFLAGS) -c grid.cc
$(CXX) $(CFLAGS) -c attribute.cc
$(CXX) $(CFLAGS) -c targa.cc
ar cru $(BIN) $(OBJFILES)
ranlib $(BIN)
rm -f *.o
答案 0 :(得分:0)
您可以使用automake风格的静默规则技巧来控制命令的输出。
要直接执行此操作,您可以执行此操作:
BIN = ../libgame.a
CXX = gcc5
CFLAGS = -Wall -O2 -pipe -mtune=i686
OBJFILES = grid.o attribute.o targa.o
########################################################################################################
default:
@echo 'Compiling grid.cc';$(CXX) $(CFLAGS) -c grid.cc
@echo 'Compiling attribute.cc';$(CXX) $(CFLAGS) -c attribute.cc
@echo 'Compiling targa.cc';$(CXX) $(CFLAGS) -c targa.cc
ar cru $(BIN) $(OBJFILES)
ranlib $(BIN)
rm -f *.o
或者您可以使用我的silent_rules.mk
并使用:
$(eval $(call vrule,Compile,Compiling $$(value 1))
$(call Compile,grid.cc);$(CXX) $(CFLAGS) -c grid.cc
$(call Compile,attribute.cc);$(CXX) $(CFLAGS) -c attribute.cc
$(call Compile,targa.cc);$(CXX) $(CFLAGS) -c targa.cc
代替获取Compiling grid.cc
,Compiling attribute.cc
和Compiling targa.cc
条消息。 (如果您对目标文件使用了正确的目标,则可以使用默认的$(GEN)
静默规则自动输出GEN xxx.o
。