免费使用SonarQube审查C/C++代码

SonarQube审查C/C++代码

一、背景

 SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误。SonarQube有很多版本(社区版、开发人员版、企业版等),只有社区版是免费使用,但该版本不支持C/C++语言的静态代码分析。下面通过配备一些免费的插件集成到SonarQube以达到审查C/C++代码的目的。

二、工具准备(附本例版本)

三、部署环境

1、JDK

(1)下载JDK时保存好安装路径
在这里插入图片描述
(2)配置系统环境变量
 新建系统变量:JAVA_HOME
 变量值:C:\Program Files\Java\jdk1.8.0_331(jdk安装路径)

在这里插入图片描述

 新建系统变量:CLASSPATH
 变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
在这里插入图片描述

 编辑Path环境变量
 添加:%JAVA_HOME%\bin
     %JAVA_HOME%\jre\bin
在这里插入图片描述
(3)验证测试
 在cmd窗口中运行java、javac、java -version语令不报错即配置成功。
在这里插入图片描述

2、SonarQube

(1)下载好sonarqube后,解压打开bin目录,启动对应OS目录下的StartSonar。如本例使用的是win的64位系统,则打开…\bin\windows-x86-64\StartSonar.bat
在这里插入图片描述
(2)启动浏览器访问http://localhost:9000,如出现下图则安装成功
  第一次登陆,默认Login、Password为:admin
在这里插入图片描述
(3)登陆Sonarqube后如需下载中文包,请按以下步骤安装插件(需联网)
  Administration->Marketplace
在这里插入图片描述

3、Sonar-cxx

 将下载好的.jar文件,放到你的sonarqube目录/extensions/plugins目录下,重启SonarQube生效(此处报错重启PC能解决大部分问题)。Language中出现cxx则配置成功。
在这里插入图片描述

4、Sonar-scanner

(1)下载好后解压打开bin目录、配置环境变量
编辑Path环境变量,将Sonar-scanner的bin目录添加进去
在这里插入图片描述
(2)cmd中验证是否配置成功
在这里插入图片描述

5、Cppcheck

(1)安装路径添加到Path环境变量
在这里插入图片描述
在这里插入图片描述
(2)cmd中验证是否配置成功
在这里插入图片描述

四、实战

1、Sonarqube自定义cxx规则

  在sonarqube平台质量配置页面,新增cxx的质量配置项并激活更多规则
在这里插入图片描述

——>
在这里插入图片描述

——>
在这里插入图片描述

——>
在这里插入图片描述

——>
在这里插入图片描述

激活完成后,将该规则项设置为默认
在这里插入图片描述

2、使用Cppcheck对项目代码进行分析

在项目文件夹的根目录下使用cppcheck工具扫描代码,结果记录到cppcheck-report.xml中
语令:cppcheck --xml --xml-version=2 --enable=all ./ 2>cppcheck-result.xml
注:扫描时间会有些长,等待完成后再进行下一步操作
在这里插入图片描述

项目根目录下生成的cppcheck-report.xml文件
在这里插入图片描述

3、配置项目的一些必要信息

(1)在项目的根目录创建sonar-project.properties文件
在这里插入图片描述

(2)文件内容:

#sonarqube中相对应项目的key(可省)
#sonar.projectKey=TestMemory

#sonarqube中相对应项目的名字(可省)
#sonar.projectName= TestMemory

#sonar检测的编程语言种类
sonar.language=c++

#sonar检测的源文件目录,‘.’表示当前根目录下的所有文件目录
sonar.sources=.

#项目各文件的后缀名(可在sonarqube中定义)
sonar.cxx.file.suffixes=.cxx,.cpp,.c,.cc,.hxx,.hh,.h,.handles

#cppcheck生成的Report名称(可在sonarqube中定义)
sonar.cxx.cppcheck.reportPaths=cppcheck-result.xml

(3)在sonarqube中定义项目各文件的后缀名:
在这里插入图片描述
(4)在sonarqube中定义cppcheck生成的Report名称:
在这里插入图片描述
注:sonarqube中的设定比sonar-project.properties文件里的设定优先级要高

4、Sonarqube创建项目

在这里插入图片描述

——>
在这里插入图片描述

——>
在这里插入图片描述

——>
在这里插入图片描述

5、使用sonar-scanner进行代码的静态扫描

复制sonar-scanner语令:
在这里插入图片描述

项目根目录下打开cmd执行上面Copy的语令:
在这里插入图片描述

在Sonarqube上查看结果:
在这里插入图片描述

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ElaineTiger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值