在命令行中使用 GNU make 构建时抑制警告

Suppress warnings when building with GNU make in command line

有没有办法抑制 GNU make 的编译器警告并只显示高阶日志,即 errors

显然,这应该可以使用 make -w 描述的 here。但是,对于我的 GNU make (4.1) 版本,man 文件将其指定为打印当前目录:

-w, --print-directory     Print the current directory.
-W FILE                      Consider FILE to be infinitely new.

如果可能,应该禁用 make-internal 警告 ($(warning ...)) 和 gcc.

编译器级警告

正如 this post 中所指出的,无法直接为编译器添加标志。此外,添加到现有 CFLAGS 变量 (make CFLAGS+=-w) 在大多数情况下也不起作用,因为它会忽略追加部分并简单地在命令行中重新定义变量。

解决此问题的一个非常简单的解决方案是在您的 makefile 中创建一个空的虚拟变量(一次),然后定义它以备不时之需:

# Add empty variable to add flags over command line
CDBG +=
CFLAGS += $(CDBG)

然后您只需按如下方式使用:

make CDBG=-w