我在一家中间件公司工作。我们希望将Cppcheck集成到我们的构建系统中,以帮助防止代码中的错误和问题。我们的代码很大,它分布在几个模块中(每个模块位于不同的文件夹中)。这些模块之间有很多依赖关系。
运行cppcheck时,我们只想在整个代码上运行一次,以便为工具提供整个视图。但是,有些模块与核心模块无关,我们希望从分析中跳过这些模块。此外,我们已经实现了不同语言的API。例如,我们有一些C ++模块,我们希望与C模块分开进行分析。
我们基本上有两个选择:1)使用我们要分析的模块列表调用cppcheck,或者2)从代码的顶级文件夹调用cppcheck,并使用-i选项忽略所有模块不应该被分析。
这两种方法都很好,直到创建XML报告。调用cppcheck-htmlreport时出现问题。我们发现没有生成index.html或stats.html。此外,只有XML中出现的一些结果被翻译成HTML报告。对于许多结果,未生成HTML页面。
任何内存问题都可以丢弃。我们已经验证了这一点此外,该工具不会连续地从XML结果开始创建HTML报告,然后停止。实际上,会发生的事情是HTML报告会跳跃。我的意思是,创建了XML中错误编号1的HTML报告,然后可能是下一个是5号,依此类推。
我们调用了cppcheck-htmlreport,其中--source-code选项指向代码的顶级文件夹。我认为问题可能是由此造成的。我尝试从顶级文件夹调用cppcheck,没有-i选项,然后生成的HTML报告没有问题。所以看起来cppcheck-htmlreport无法正确理解使用-i选项创建的XML。 有没有办法为cppcheck-htmlreport提供-i选项?我认为这可以解决问题......
我还注意到,当分析了许多模块和代码时,似乎只会出现问题。当只分析几个模块时,HTML报告是正确的,虽然我们仍然调用cppcheck-htmlreport,提供顶级文件夹为--- source-dir。
这是cppcheck HTML生成器中的已知问题吗?有什么方法可以解决这个问题吗? 非常感谢任何建议。 谢谢, 索尼娅