我从GCC收到这个警告:
警告:不能传递非POD类型的对象'class Something'到'...'; call将在运行时中止
它非常致命,特别是因为它叫做中止.为什么这不是错误?我想把它弄错,但是:
如何使特定警告出错?
这是什么警告?根据http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html,-Wno-invalid-offsetof
看起来像隐藏它的标志,但它不
Sean Bright.. 25
我不确定正确的警告是什么,但是一旦你找到它,你可以用以下内容改变它的处置(使用'format'作为例子):
#pragma GCC diagnostic error "-Wformat"
或者直截了当地指出:
gcc -Werror=format ...
编辑:我刚刚检查了gcc源代码,并且无法通过命令行标志禁用此特定警告.
我不确定正确的警告是什么,但是一旦你找到它,你可以用以下内容改变它的处置(使用'format'作为例子):
#pragma GCC diagnostic error "-Wformat"
或者直截了当地指出:
gcc -Werror=format ...
编辑:我刚刚检查了gcc源代码,并且无法通过命令行标志禁用此特定警告.
-Werror=specific-warning
将指定的内容-Wspecific-warning
转换为GCC 4.3.x或更高版本中的错误.在4.1.2中,仅-Werror-implicit-function-declaration
适用.注意连字符而不是等号 - 它仅适用于特定情况而不适用于其他情况.这是一个比较严重的常见警告,将它变成一个错误肯定很方便.
除此之外,旧版本的GCC似乎只是为-Werror
大锤提供了每一个警告的错误.
听起来有很多其他警告,你不想把它们变成错误(使用-Werror标志).一般来说,修复所有警告的良好做法.使用-Werror强制执行此操作.