gpt4 book ai didi

makefile - 如何隐藏Makefile的打印信息?

转载 作者:行者123 更新时间:2023-12-02 01:06:42 25 4
gpt4 key购买 nike

Makefile执行某些任务时,会在console中打印很多信息,是否可以选择隐藏?当我要生成很多 .o 时,这些信息会太多而看不到,如果我们不阅读它们,它们就毫无意义。

下面的代码

$(obj)environment.o: $(src)environment.c
$(CC) $(AFLAGS) -Wa, --no-warn \
-DENV_CRC=$(shell $(obj)../tools/envcrc) \
-c -o $@ $(src)environment.c

将打印大量信息,如

arm-linux-gcc -g  -Os   -fno-strict-aliasing  -fno-common -ffixed-r8 -msoft-float  
-D__KERNEL__ -DTEXT_BASE=0x01000000
-I/home/mingzhao/Documents/bootloader/u-boot-1.2.0/include
-fno-builtin -ffreestanding -nostdinc -isystem
/home/mingzhao/Documents/bootloader/arm/4.3.2/bin/../lib/
gcc/arm-none-linux-gnueabi/4.3.2/include -pipe -DCONFIG_ARM
-D__ARM__ -march=armv4 -mabi=apcs-gnu -Wall -Wstrict-prototypes
-c -o environment.o environment.c

最佳答案

处理此问题的“正确”方法 (IMO) 是将其添加到您的 makefile 中:

$(VERBOSE).SILENT:

然后在您永远不想打印命令的规则中(例如,下面 Beta 的回答中的 echo 语句)您在它前面加上 @。对于所有其他命令,您不需要使用 @ 作为前缀。

这样做是默认启用“静默”模式(因为变量 VERBOSE 未设置,因此解析为 .SILENT 伪目标)。

然后如果你想看到所有内容,你添加一个VERBOSE=1(实际上你可以将它设置为任何非空值,所以VERBOSE=true如果你更喜欢)。当你这样做时,它会关闭“静默”模式,因为上面的行扩展为 1.SILENT:(或 true.SILENT: 或其他),这对制作来说毫无意义。

关于makefile - 如何隐藏Makefile的打印信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21738660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com