所以我有一個項目上的遞歸生成文件,但由於某種原因,AR是仍然打印輸出的唯一命令。安靜的makefile不起作用
我該如何強制它安靜?它在開始處已經有'@'了,我不想將輸出管道設置爲空。
我怎麼稱呼這個makefile?
@cd libc; make clean --no-print-directory
這裏的麻煩製造者生成文件:
include ../Makefile.inc
LIB=../libc.a
SOURCES=$(wildcard *.c)
SOURCES_ASM=$(wildcard asm/*.asm)
OBJECTS=$(SOURCES:.c=.o)
OBJECTS_ASM=$(SOURCES_ASM:.asm=.o)
all: $(LIB)
@echo -e " libC [ \033[0;32mOK \033[0m]"
$(LIB): $(OBJECTS) $(OBJECTS_ASM)
@$(AR) $(ARFLAGS) -c $(LIB) $(OBJECTS_ASM) $(OBJECTS)
$(OBJECTS): $(SOURCES)
$(OBJECTS_ASM): $(SOURCES_ASM)
%.o: %.c
@$(GCC) $(GCCFLAGS) -c $< -o [email protected]
%.o: %.asm
@$(ASM) $(ASMFLAGS) $< -o [email protected]
clean:
@rm -rf *.o ../*.a
.PHONY:
all clean
和這裏的輸出:
a - asm/syscall.o
a - syscall.o
a - string.o
a - stdio.o
a - integer.o
libC [ OK ]
在此先感謝
'@'只是防止'make'在執行之前打印命令。它對命令本身的輸出沒有任何作用。 – melpomene
哦,我太笨了。有沒有辦法將stdout重定向到null,但只有一部分,而不是全部? – Juan
將其編入一個程序,該程序選擇吞下什麼以及將什麼傳遞給標準輸出。例如。如果你想要保留某些模式的行,'grep'是明顯的選擇。 – melpomene