我刚想出了一个解决问题的想法并想分享它.对不起,如果太平庸.
因此,我正在审查的一个大型C++项目包含许多依赖于其他包含但未包含所需包含的符号的包含.构建过程中的任何轻微更改都会导致"缺少符号"失败.
因此,为了立即检查所有自包含的包含,我搜索所有*.h,动态创建一个cpp文件,该文件只包含带有此.h文件的#include -statement并尝试编译它.最后,我获得了一个"好"和"坏"包含文件的列表.酷不是它:-)还是有一个更简单的解决方案吗?
Kle*_*ist 12
如果每个.cpp文件首先包含它自己的头文件,然后是其他头文件,那么您将在不使用外部工具的情况下进行此检查.
这实际上是Googles C++ Style Guide的一部分,原因同样如下:
首选排序减少了隐藏的依赖关系.我们希望每个头文件都可以自己编译.实现这一目标的最简单方法是确保它们中的每一个都是第一个.h文件#included in some .cc.
如果你有任何头文件没有相应的.cpp文件,你必须为他们做一些特殊的事情.