cppcheck命令行--suppress参数无法屏蔽指定文件报错如何解决
失效原因
你的命令没有语法错误,失效核心是路径匹配规则不匹配--project参数的加载逻辑:
当你通过--project=solution.sln加载解决方案时,cppcheck内部识别的文件路径是相对于sln文件所在目录的路径/绝对路径,你写的--suppress=*:file.cpp仅匹配当前命令执行目录下的file.cpp,当文件实际存放路径和命令执行目录不一致时,匹配规则就会失效。
修复方案
方案1:通用通配符匹配(无需关注具体路径)
在文件名前加路径通配符*/,适配任意层级的目录结构,修改后的参数为:--suppress=*:*/file.cpp
完整命令如下:
cppcheck --enable=all -j 4 --output-file=out.txt --project=solution.sln --suppress=*:*/file.cpp
方案2:精准路径匹配
先直接运行一次不带--output-file参数的同规则命令,查看控制台输出的报错信息里file.cpp的完整路径前缀,把完整路径写到suppress规则里即可,比如文件实际在sln目录下的src/utils子文件夹,就写成:--suppress=*:src/utils/file.cpp
内容的提问来源于stack exchange,提问作者Name
相关产品推荐
相关产品推荐

