PVS-Studio不处理头文件

时间:2012-11-04 10:53:30

标签: c++ pvs-studio

我已经尝试在我的项目上进行静态代码分析,它基本上是由.hpp文件组成的,因为everthing是“模板化”的,但遗憾的是我从PSV-Studio获取了无法处理头文件的信息。这看起来有点奇怪。在现代C ++中,模板无处不在,AFAIC主要放在头文件中。我错过了什么吗?有没有办法设置PVS-Studio来对头文件进行分析?

1 个答案:

答案 0 :(得分:1)

PVS-Studio支持分析“模板化”代码,即使它没有实例化。

但是,PVS-Studio需要对文件进行预处理以对其进行分析,即在分析之前应扩展所有#includes和宏。为实现此目的,PVS-Studio需要一个可编译文件,即传递给编译器的文件以及必要的编译器标志(定义,包括等)。只有一个头文件是不够的,因为PVS-Studio没有足够的信息来正确预处理它。

“无法启动对此文件的分析”很可能是V008错误,这意味着预处理器退出时使用非零代码,这意味着您尝试分析的文件是不可编译的。通常,PVS-Studio还将输出错误原因(来自预处理器进程的stdErr)作为下一条消息。您可以更详细地了解它here