cppcheck-vs-addin - 如何从检查中删除文件夹

Posted

技术标签:

【中文标题】cppcheck-vs-addin - 如何从检查中删除文件夹【英文标题】:cppcheck-vs-addin - How to remove folder from check 【发布时间】:2018-04-19 16:19:47 【问题描述】:

我正在尝试将cppcheck-vs-addin 配置为在保存时自动检查我的代码。到现在为止还挺好。但是,当我在整个项目上运行它时,我想排除几个文件夹(包含我无法控制的源和标题)。

我试图排除的文件位于文件夹 libs\something\files.* 文件夹树类似于

src 
  | Folder A
  | Folder B
libs
  | LibsA
  | LibsB

到目前为止我已经尝试过什么:

-在设置中,我在附加参数字段中添加了 -ilibs

-在编辑解决方案抑制/排除包含路径:.*\\libs\\.*(这应该适用于头文件,但我也有源文件)

-在编辑解决方案抑制/从检查中排除的文件.*\\libs\\.*(此选项似乎仅适用于文件名,而不适用于包含文件夹,因此在这种情况下它什么也不做)

另一个问题,是否可以查看正在运行的 cppcheck.exe 命令?它可以帮助理解我在做什么。

【问题讨论】:

【参考方案1】:

如果您已安装 CPPCheck(并且它位于默认位置),请将路径 C:\Program Files (x86)\Cppcheck 添加到环境变量。现在从您的项目属性更新您的预构建事件并直接从那里调用 cppcheck。检查此图像如何指定 PreBuild 事件

Visual Studio C++ Project Property Page to setup Pre-Build Event

现在您可以提供参数以从扫描中排除目录(如任何第三方代码等)。

cppcheck --project=$(MSBuildProjectFullPath) -i "$(ProjectDir)foo\src\" --output-file="$(OutDir)$(TargetName).xml"

--project=$(MSBuildProjectFullPath) 选择您当前的项目文件(.vcproj 或 .vcxproj)文件,

-i 指定要从扫描中排除的目录

--output-file="$(OutDir)$(TargetName).xml" 在项目输出目录中创建带有分析结果的输出文件。

要查看详细参数列表,请在命令行中输入 cppcheck --help

【讨论】:

这个解决方法应该可以工作,你基本上是在本地调用 cppcheck,但你完全绕过了插件。所以我们在IDE内部没有错误显示

以上是关于cppcheck-vs-addin - 如何从检查中删除文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何从扩展语法检查中获取结果

如何检查是不是从api返回数据?

如何从 Podfile 检查 swift 版本?

如何检查 Fragment 是不是从后台恢复?

如何检查用户是不是从“设置”返回

如何检查用户是不是从游戏服务默认视图中退出?