如何解决 Cppcheck 中的问题 ID“toomanyconfigs”和“missingInclude:”

Posted

技术标签:

【中文标题】如何解决 Cppcheck 中的问题 ID“toomanyconfigs”和“missingInclude:”【英文标题】:How to resolve the Issue ID "toomanyconfigs" and "missingInclude:" in Cppcheck 【发布时间】:2016-08-23 05:51:41 【问题描述】:

我正在使用 Visual Studio 2008 处理 MFC 应用程序(大约 2000 个文件)。我为此应用程序运行 Cppcheck,但发现了这两个问题。

Issue toomanyconfigs: (Information -- 由于#ifdef 配置太多,文件的检查将被中断。检查所有#ifdef 配置可以通过--force 强制命令行选项或 GUI 首选项。但是这可能会增加检查时间。)

问题missingInclude(信息--Cppcheck 找不到所有的包含文件。Cppcheck 可以在没有找到包含文件的情况下检查代码。但是如果所有的包含文件,结果可能会更准确找到包含文件。请检查您项目的包含目录,并将它们全部添加为 Cppcheck 的包含目录。要查看 Cppcheck 找不到哪些文件,请使用 --check-config。)

我的 Cppcheck 参数列表是 cppcheck --quiet --verbose --check-config --force --enable=all --suppress=missingIncludeSystem --template=vs --std=c++11 $(ItemPath)

我该如何解决这些问题?

【问题讨论】:

【参考方案1】:

我是一名 Cppcheck 开发人员。

当你使用--force 时得到 toomanyconfigs 很奇怪。如果您可以创建一个重现问题的文件,请在our issue tracker 中报告。您可能可以删除文件中的所有代码,只保留预处理器指令。

您可以使用-I 指定包含路径。

Cppcheck-1.76(下一版本)将能够导入 Visual Studio 2010 及更高版本的解决方案文件,以便您自动获取包含路径。也许测试起来会很有趣。

【讨论】:

以上是关于如何解决 Cppcheck 中的问题 ID“toomanyconfigs”和“missingInclude:”的主要内容,如果未能解决你的问题,请参考以下文章

CMake 中的 Cppcheck 支持

cppcheck 中的 SLOC

如何在控制台中的项目中使用 cppcheck 执行?,也许在 makefile 中搜索参考?

cppcheck - 终止Strncpy

如何告诉 Cppcheck 跳过头文件

“CPPCheck 插件包”包未正确加载