我想禁止来自g++的特定警告。我知道-Wno-XXX标志,但我正在寻找更具体的东西。我想要-Weffc++中的一些警告,但不是所有警告。类似于你可以用lint做的事情-禁用特定的消息。在gcc中有没有内置的方法来做到这一点?我必须写一个 Package 器脚本吗?
-Wno-XXX
-Weffc++
jtw3ybtb1#
不幸的是,g没有提供这个特性。在VC中,可以使用#pragma warning来禁用某些特定的警告。在gcc中,最接近的是diagnostic pragmas,它允许您为某些文件或项目启用/禁用某些类型的诊断。
pbpqsu0x2#
对于某些警告,有一个命令行开关可以禁用它们。为了知道使用哪个开关,将-fdiagnostics-show-option传递给gcc。
-fdiagnostics-show-option
7nbnzgx93#
你可以在输出中使用***grep -v***。根据要禁用的警告,有时可以在代码中进行更正。例如:
int main() { int i; }
然而,这并不:
#define MARKUSED(X) ((void)(&(X))) int main() { int i; MARKUSED(i); }
bis0qfac4#
将标准错误传递给过滤器,以删除您不想看到的内容。例如,这是我的make文件:
main.o: main.cpp g++ -c -Wall main.cpp 2>&1 | grep -v Wunused-variable
ou6hu8tu5#
当我的同事们试图阻止我编写简洁的代码时,他们使用g++命令行选项
-Werror-parenthesis
我在代码中禁用了这个错误:
#pragma GCC diagnostic ignored "-Wparentheses"
5条答案
按热度按时间jtw3ybtb1#
不幸的是,g没有提供这个特性。在VC中,可以使用#pragma warning来禁用某些特定的警告。在gcc中,最接近的是diagnostic pragmas,它允许您为某些文件或项目启用/禁用某些类型的诊断。
pbpqsu0x2#
对于某些警告,有一个命令行开关可以禁用它们。为了知道使用哪个开关,将
-fdiagnostics-show-option
传递给gcc。7nbnzgx93#
你可以在输出中使用***grep -v***。
根据要禁用的警告,有时可以在代码中进行更正。例如:
然而,这并不:
bis0qfac4#
将标准错误传递给过滤器,以删除您不想看到的内容。例如,这是我的make文件:
ou6hu8tu5#
当我的同事们试图阻止我编写简洁的代码时,他们使用g++命令行选项
我在代码中禁用了这个错误: