# To put more focus on warnings, be less verbose as default
# Use 'make V=1' to see the full commands
ifeq ("$(origin V)", "command line")
KBUILD_VERBOSE = $(V)
endif
ifndef KBUILD_VERBOSE
KBUILD_VERBOSE = 0
endif
ifeq ($(KBUILD_VERBOSE),1)
Q =
ifndef VERBOSE
VERBOSE = 1
endif
export VERBOSE
else
Q = @
endif
$(Q) 变量的本质就是 Makefile中的命令显示与否,命令前有@字符,则不显示命令本身而只显示命令的执行结果。
而 Q = @与否,是通过KBUILD_VERBOSE变量控制。
如果执行make menuconfig V=1,那么Q等于空,即显示命令本身且显示命令的执行结果;
如果执行make menuconfig,那么Q=@,即只显示命令的执行结果
Q变量可以协助调试分析问题。
这篇博客介绍了Makefile中KBUILD_VERBOSE变量的作用,它决定了命令是否显示。当执行makemenuconfigV=1时,命令及其输出可见;反之,仅显示命令执行结果。Q变量根据KBUILD_VERBOSE的值决定是否在命令前添加@,从而控制命令的可见性。这对于调试和理解构建过程非常有帮助。
1234

被折叠的 条评论
为什么被折叠?



