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

时间:2010-11-19 11:25:15

标签: c++ c

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

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

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

2 个答案:

答案 0 :(得分:12)

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

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

  

首选排序减少隐藏   依赖。我们想要每个标题   文件可以自行编译。该   实现这一目标的最简单方法是制作   确定他们每个人都是   第一个.h文件#included in some .cc。

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

答案 1 :(得分:1)

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