cppcheck怎么安装和实用

cppcheck怎么安装和实用,第1张

首先先下载 成功后:

编译:

g++ -o cppcheck -Ilib cli/*.cpp lib/*.cpp

安装:

make install

cppcheck默认安装会报错如下:

cppcheck: unusedFunction check can't be used with '-j' option. Disabling unusedFunction check.

(information) Failed to load std.cfg. Your Cppcheck installation is broken, please re-install. The Cppcheck binary was compiled without CFGDIR set. Either the std.cfg should be available in cfg or the CFGDIR should be configured.

因此我直接不用他们的make,而是直接使用g++参数编译:g++ -o cppcheck -Ilib cli/*.cpp lib/*.cpp

然后就是检查了

cppcheck -j 3 --enable=all src/

使能检查规则:

默认:--enable=error

--enable=all

--enable=unusedFuntion path

--enable=style

规则定义:

error:出现的错误

warning:为了预防bug防御性编程建议信息

style:编码格式问题(没有使用的函数、多余的代码等)

portablity:移植性警告。该部分如果移植到其他平台上,可能出现兼容性问题

performance:建议优化该部分代码的性能

information:一些有趣的信息,可以忽略不看的。

保存结果到文件中:重定向“>”

-j 3 使用3个线程,如果代码工程太大,可以使用15-20个,自己随意发挥,不过还是参考cpuinfo

如果是Windows的版本呢,就这样使用:

1、将Cppcheck绿色版cppcheck.rar解压;

2、打开cppcheckgui.exe;

3、菜单 check->directory;

4、选择源代码目录,确认;

5、Cppcheck自动开始走查;

默认情况下,只显示错误消息,可以通过 --enable 命令启用更多检查

启用警告消息:

启用性能消息:

启用信息消息:

由于历史原因 --enable=style 可以启用警告、性能、可移植性和样式信息。当使用旧 XML 格式时,这些都由 style 表示:

启用警告和性能消息:

启用 unusedFunction 检查。这不能通过 --enable=style 启用,因为不会在库中正常工作。

启用所有消息:

提供一个源文件或源文件目录以排除从检查。这只适用于源文件源文件包含的头文件不匹配。目录名与路径的所有部分相匹配。

允许Cppcheck报告,即使分析是不确定。这个选项有假阳性。每个结果在你知道它是否存在之前,必须仔细调查好或坏。

默认情况下,如果确定,Cppcheck 只显示错误消息。如果使用 --inconclusive ,当分析不确定时,也会写错误消息。

选择XML文件版本。目前只有版本2是可用的。

很多时候,会希望将结果保存在一个文件中,可以使用 shell 的管道重定向错误输出到一个文件:

选项 -j 用于指定需要使用的线程数,例如,使用 4 个线程检查文件夹中的文件:

Cppcheck 可以生成 XML 格式的输出。有一个旧的 XML 格式(version 1)和一个新的 XML 格式(version 2)。如果可以,请使用新版本。

旧版本保持向后兼容性。它不会改变,但有一天可能会被删除。使用 --xml 支持这种格式。

新版本修复一些旧格式的问题。新格式可能会在 cppcheck 的未来版本中更新,并带有新的属性和元素。用于检查文件并以新的 XML 格式输出错误的示例命令:

通常编译器会对声明但没有被引用或定义的标识符报告一个warning,所以要注意编译器的报告,对自己程序要求严格一点,尽量做到0 error, 0 warning。

此外还可以借助于其他的静态代码检查工具,比如cppcheck,它可以对一些编译器不检查的问题如代码风格、性能瓶颈等问题给出警告,给出优化提示。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8163773.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存