在命令行中使用 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
有没有办法抑制 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