解决隐含的想法包含在C,C ++中

我刚想出了一个解决问题的想法并希望分享它。 对不起,如果太平庸。

因此,我正在审查的一个大型C ++项目包含许多依赖于其他包含但未包含所需包含的符号的包含。 构建过程中的任何轻微更改都会导致“缺少符号”失败。

因此,为了立即检查所有自包含的包含,我搜索所有* .h,动态创建一个cpp文件,该文件只包含带有此.h文件的#include -statement并尝试编译它。 最后,我获得了一个“好”和“坏”包含文件的列表。 酷不是它:-)还是有一个更简单的解决方案吗?

如果每个.cpp文件首先包含它自己的头文件,然后是其他头文件,那么您将在不使用外部工具的情况下进行此检查。

这实际上是Googles C ++ Style Guide的一部分,原因同样如下:

首选排序可减少隐藏的依赖关系。 我们希望每个头文件都可以自行编译。 实现这一目标的最简单方法是确保它们中的每一个都是第一个.h文件#included in some .cc。

如果你有任何头文件没有相应的.cpp文件,你必须为他们做一些特殊的事情。

这已经很多年了,但我相信林特会为你做这件事。 而且我似乎记得Lint还告诉你何时在前方声明中包含文件。