
编译:
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,它可以对一些编译器不检查的问题如代码风格、性能瓶颈等问题给出警告,给出优化提示。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)