如果不必要地包含头文件,我可以告诉GCC失败吗?

如果不必要地包含头文件,我可以告诉GCC失败吗?,gcc,warnings,compiler-errors,Gcc,Warnings,Compiler Errors,我最近参与的项目通过打开所有最严格的GCC警告并迭代直到编译完成,对代码进行了清理。例如,现在,如果我声明一个变量而不使用它,编译就会失败 在我的最新开发任务之后,我看到有一个头文件包含在某个地方,现在不需要了。除了尝试删除头文件并查看是否有任何损坏之外,还有什么好方法可以找到其他此类头文件(并以这种方式减少依赖关系) 我在Linux上使用GCC 4.3.2。不,如果不需要标头,就无法使GCC失败。包含的标题可以包含几乎任何内容,因此假设包含它们的人有充分的理由这样做。想象一下以下有点病态的情况

我最近参与的项目通过打开所有最严格的GCC警告并迭代直到编译完成,对代码进行了清理。例如,现在,如果我声明一个变量而不使用它,编译就会失败

在我的最新开发任务之后,我看到有一个头文件包含在某个地方,现在不需要了。除了尝试删除头文件并查看是否有任何损坏之外,还有什么好方法可以找到其他此类头文件(并以这种方式减少依赖关系)


我在Linux上使用GCC 4.3.2。

不,如果不需要标头,就无法使GCC失败。包含的标题可以包含几乎任何内容,因此假设包含它们的人有充分的理由这样做。想象一下以下有点病态的情况:

int some_function(int x) {
#include "function_body.h"
return x;
}

这当然不是一个好的形式,但如果删除include,它仍然可以编译。因此,自动检查器可能会声明它“不必要”,即使当函数体实际存在时,其行为可能会有所不同。

“如果我声明一个变量而不使用它,编译就会失败”。您为此设置了哪个编译器选项?听起来很有用,但哦,太严格了;-)