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 - 如何从检查中删除文件夹的主要内容,如果未能解决你的问题,请参考以下文章