Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 解析隐式包含在C,C++;_C++_C - Fatal编程技术网

C++ 解析隐式包含在C,C++;

C++ 解析隐式包含在C,C++;,c++,c,C++,C,我刚刚提出了一个解决问题的想法,并想与大家分享。对不起,太平庸了 这样,我正在审查的一个大型C++项目,包含许多依赖于其他包含的符号但不包括所需的包含在内的许多项目。构建过程中的任何微小更改都会导致“缺少符号”故障 因此,为了一次检查所有include的自包含性,我搜索all*.h,动态创建一个cpp文件,其中只包含带有此.h文件的#include-语句,并尝试编译它。最后,我得到了一个“好”和“坏”包含文件的列表。 很酷,不是吗:-) 或者有更简单的解决方案吗?如果每个.cpp文件都先包含自己

我刚刚提出了一个解决问题的想法,并想与大家分享。对不起,太平庸了

这样,我正在审查的一个大型C++项目,包含许多依赖于其他包含的符号但不包括所需的包含在内的许多项目。构建过程中的任何微小更改都会导致“缺少符号”故障

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

如果每个.cpp文件都先包含自己的头文件,然后包含其他头文件,则无需使用外部工具即可获得此检查

出于同样的原因,这实际上是

首选顺序减少了隐藏的错误 依赖关系。我们想要每一个头球 文件本身是可编译的。这个 实现这一点的最简单方法是 确定他们每个人都是 第一个.h文件#包含在some.cc中


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

这已经是很长的一段时间了,但我相信Lint会为您做这件事。我似乎还记得,Lint还告诉您,当包含文件时,转发声明就可以了。

如果启用隐式声明警告并将警告视为编译器选项中的错误,您是否也可以捕获这些警告?-1:当然,这个主意很酷,但这不是一个真正的问题。@Andres:问题警察先生,这是一个问题,它询问是否有更好的方法来实现目标same@Armen啊哈,你说得对。投票结果颠倒了,但现在我认为你是个混蛋。@Andres:不,我不是:)就是这样,太多的人就像结束/结束投票的问题一样,根本不值得这么做。对不起,如果我冒犯了你+1谢谢!我总是使用这种包含方法,但记不清原因,也无法解释原因。现在我知道了!还感谢您指向谷歌风格指南!不幸的是,您不能将预编译头与以下样式一起使用:\@reverse:interest!我从来没有使用过它们,真是遗憾:-(好的,谢谢!在这个客户代码中,我甚至看到了许多lint pragma。我应该问他们如何处理这个lint警告。可能被抑制:-)我记得启用了lint中的所有警告“供笑”。120万个错误,花了一个周末的大部分时间运行。最好关闭所有警告,然后慢慢打开,修复所需内容,然后继续下一步。我只对15个左右感兴趣。