在 GCC 中,如何(暂时)抑制来自"#pragma message"的消息

In GCC, how to (temporarily) suppress messages from "#pragma message"

本文关键字:#pragma message 消息 GCC 如何 暂时      更新时间:2023-10-16

我从GLM库中获得#pragma message发出的许多消息。是否有一种方法可以抑制这些,最好是暂时的(仅针对该库)?

我能想到的最佳解决方案是通过过滤器将g++的输出管道,即

g++ [args...] 2>&1 | filter_command

(缺点是丢失了g++的退出码),或者

g++ [args...] 2> >(filter_command)

(仅当您的shell是bash时有效,而不仅仅是普通的POSIX sh,但它确实携带退出代码)。例如,filter_command可以是sed脚本,删除匹配note: #pragma message:的行与包含空格的行和单独的^之间的任何内容:

g++ [args...] 2> >(sed '/ note: #pragma message: /,/^ *^/d')

我不确定这将捕获所有形式的#pragma message输出,尽管