请在包含头文件进行分析后告诉我cppcheck的用途或工作原理

Posted

技术标签:

【中文标题】请在包含头文件进行分析后告诉我cppcheck的用途或工作原理【英文标题】:Please tell me about the uses or working of cppcheck after including the header files for analysis 【发布时间】:2015-12-09 07:03:32 【问题描述】:

请告诉我在 cppcheck 分析过程中使用/不使用头文件的区别。

其实我是在整合cppcheck的report和sonar,sonar的dashboard会不会有差异?

包含头文件后,完成分析需要 5 天(大约),即使我使用了 -j 4 和 max-config 到 2 个选项。

令人困惑的是,在包含用于分析的头文件后,LOC 已减少。我可以看到功能,类减少到几个数字。

cppcheck 是否在头文件中检查错误?如果是,适用什么规则?我在哪里可以找到这些信息,以及与头文件关联的规则?

请帮忙。

谢谢, 饭菜

【问题讨论】:

【参考方案1】:

我是一名 Cppcheck 开发人员。

是否应该包含标题,这在技术上不是一个微不足道的问题。用于分析的标题既有优点也有缺点。更好的类型信息是一件好事。扩展宏可能是一件坏事。

如果您想知道;无论是否包含标题,都将使用相同的检查器。只是当包含所有标头时,输入数据并不总是更好。

我当然建议您不要包含任何标准标题。标准输入输出、字符串、stl 等。

我个人通常不包含各种系统标头。如果我使用库,我宁愿创建一个 cfg 文件。这将为 Cppcheck 提供比标题更好的关于库的信息。

我通常会尝试在项目中包含本地标头。使用 -I 在项目中添加好的路径。

【讨论】:

感谢 Daniel 的回复,创建 cfg 文件而不是标头会提高性能吗?我已经排除了系统/标准头文件,并且我正在使用 -I 选项来包含我的项目头文件(这会消耗大量分析时间)。我可以有一个链接来描述使用 cppcheck 的 cfg 文件吗?非常感谢:)

以上是关于请在包含头文件进行分析后告诉我cppcheck的用途或工作原理的主要内容,如果未能解决你的问题,请参考以下文章

由于包含路径,cppcheck 未检测到资源泄漏

cppcheck 是不是分析多个文件

如何告诉 Cppcheck 跳过头文件

声明结构数组时,cppcheck 停止分析整个文件

如何使用 cppcheck 忽略某些文件类型?

VC++中的string类要包含啥头文件?