对错误进行特定的gcc警告

时间:2012-06-08 13:05:08

标签: c++ gcc compiler-errors warnings compiler-flags

所以我知道我可以使用-Werror = ...将警告变成错误但是我想将以下警告变成错误:

“类xxx具有虚函数但非虚析构函数”

我知道你可以得到这个错误的唯一方法是打开过度讨厌的-Weffc ++标志。有没有办法(或者这个警告的-Weffc ++中的子标志是什么)只打印此警告然后将其变成错误?

谢谢!

1 个答案:

答案 0 :(得分:6)

-Wnon-virtual-dtor-Weffc++启用的特定警告的名称。要将任何警告变为错误,请使用-Werror=...。因此,如果警告为-Wspam,则将其设为错误-Werror=spam。因此,在这种情况下,您将使用-Werror=non-virtual-dtor

但是,如果您使用GCC 4.8及更高版本,我不认为此警告特别有用。然后您就可以访问上级-Wdelete-non-virtual-dtor

  

delete用于销毁某个类的实例时发出警告   具有虚函数和非虚析构函数。这是不安全的   通过指向基类的指针删除派生类的实例   class,如果基类没有虚拟析构函数。这个   警告由-Wall启用。

请注意,g++ -Wspam -Werror=spamg++ -Werror=spam相同。将警告变为错误会自动打开该警告。

在相关的说明中,您并不是唯一一个认为-Weffc++ is a little overzealous

的人
相关问题