漂亮的打印 Makefile

19

Linux内核(以及包括git在内的其他各种项目)有非常好的makefile,可以将巨大的cc调用隐藏到简短的首字母缩略词中。

例如:


gcc -O2 -o cool.o cool.c -llib
gcc -O2 -o neat.o neat.c -llib

将其翻译为:

CC cool.c
CC neat.c

如果您有一个拥有大量文件和长编译器标志的项目,这真的很不错。我记得这与抑制默认输出并创建自定义输出有关。您该如何做呢?

2个回答

24
你可以在 makefile 的目标中,在调用命令前加上 @ 符号。
例如:
%.o: %.c
    @$(CC) $(CFLAGS) -c -o $@ $<
    @echo "CC $<"

8
Linux内核的Makefile允许您决定是否显示编译命令(在调试时很有用)。它们通过有条件地设置Q = @,然后将命令写为$(Q)$(CC) ...来实现。现在,您可以选择通过设置Q =来设置一个命令。 - R Samuel Klatchko

0

对于更加复杂的Makefile,您可以使用Python脚本实时捕获输出并按照自己的方式进行处理,然后实时打印它们: example


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接