如何在makefile中更改gcc编译消息

时间:2015-02-19 21:29:16

标签: compilation makefile message

我是编程新手。

我需要帮助我在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

1 个答案:

答案 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.ccCompiling attribute.ccCompiling targa.cc条消息。 (如果您对目标文件使用了正确的目标,则可以使用默认的$(GEN)静默规则自动输出GEN xxx.o