1.安装cppcheck
先从cppcheck官方网站下载cppcheck的安装包。
注:
(1)官网地址:https://sourceforge.net/projects/cppcheck
(2)截止2023年8月,官方发布的最新版本是cppcheck-2.11-x64-Setup.msi。
双击安装文件,根据安装向导,一步一步开始安装。
注:本实例中,安装路径是C:\Program Files\Cppcheck
除了安装cppcheck之外,还需要安装python,并且获取到MISRA.txt文本文件。这部分内容不在这里详细说明,假设你已经准备好了这些环境。
请确保Source Insight已经安装。下面开始进入正题。
2.关于配置文件misra.json
从2.88版本开始,Cppcheck支持插件(addon)。
可以通过下面的Cppcheck命令调用插件(addon):
cppcheck --addon=misra.py somefile.c
这将启动所有 Cppcheck 检查,并额外调用所选插件提供的特定检查。
一些插件需要额外的参数。我们可以在misra.json文件中配置插件和参数。
{"script": "misra.py","args": ["--rule-texts=misra.txt"]
}
然后可以在 Cppcheck 命令行上执行配置:
cppcheck --addon=misra.json somefile.c
默认情况下,Cppcheck将在安装过程中指定的标准路径上搜索插件。你也可以直接设置此路径,例如:
cppcheck --addon=”C:\opt\cppcheck\configurations\my_misra.json” somefile.c
这允许你为不同的项目创建和管理多个配置文件。
第一次使用插件,会遇到很多问题。因为插件的配置文件misra.json很容易出错。
下面是一个可以成功运行的配置文件:
{"script": "misra.py","args": ["--rule-texts=C:/opt/cppcheck/configurations/misra2012_rules.txt"]
}
注意:"–rule-texts=***"的路径名必须使用左斜线“/”,而且路径名不能有空格!
我们把misra.json和misra2012_rules.txt放在“C:\opt\cppcheck\configurations”目录下。你可根据实际需求决定把它们放在哪里。
实际使用过程中,遇到几个问题。
(1)misra2012_rules.txt文件所在路径中不能有空格。否则cppcheck会找不到它们。例如“C:\Program Files\Cppcheck”存在空格,不满足要求。但是misra.json文件所在的路径可以有空格。
(2)misra.json配置文件中"–rule-texts=***"的路径名必须使用左斜线“/”!如果用右斜线“\”,则会报找不到文件。
(3)cppcheck命令执行时必须使用参数“–enable=all”才能检查到MIRSA违规项,否则检查结果为空白。下面是参数包含“–enable=all”的例子:
cppcheck --enable=all --addon="C:\opt\cppcheck\configurations\my_misra.json" settings.c
3.添加Source Insight的自定义命令
点击菜单[Tools]->[Custom Commands…],打开“Custom Commands”界面。
点击右上角的“Add”按钮,弹出“Add New Custom Command”对话框。输入“Cppcheck”后,点击“OK”按钮,返回“Custom Commands”界面。
“Run:”输入如下命令:
“C:\Program Files\Cppcheck\cppcheck.exe” --platform=win64 --enable=all --addon=“C:\opt\cppcheck\configurations\misra.json” %f
配置Output:选中“Iconic Windows”和“Capture Output”选项。其它不勾选。
配置Control:都不勾选。
配置Source Links in Output:选中“Parse Links in Output”选项。“Patterm Contains:”选中“File, then Line”选项。
其它的保持默认设置。
然后点击右下角的“Keys…”按钮,设置Cppcheck命令快捷键。
首先,确认“Command:”就是Cppcheck,然后点击“Assign New Key…”按钮,弹出提示对话框中,点击快捷键“alt+2”,之后“Keystokes”列表框中会添加我们按下的快捷键。最后,点击“OK”按钮。
测试:
(1) 打开任何一个文件;
(2) 按下快捷键“alt+2”,等待静态测试完成,即可看到显示的结果: