SonarQube中文网站 > 使用技巧 > SonarQube C++代码检查 SonarQube代码扫描质量规则

SonarQube C++代码检查 SonarQube代码扫描质量规则

发布时间:2025-08-30 08: 00: 00

品牌型号:联想 E550C ThinkPad

系统:Windows 11

软件版本:SonarQube Server 25

随着C++项目代码行数的日渐增加,传统的人工审阅代码模式已无法及时发现海量代码中可能存在的问题漏洞。SonarQube作为代码分析、质量检测的工具,通过其内部数百条专为C++语言定制的扫描规则,构成了覆盖代码安全性、可靠性、可维护性等多个维度的智能防护体系。对于刚接触SonarQube的开发团队而言,建议阅读并理解下文关于SonarQube C++代码检查,SonarQube代码扫描质量规则的内容,它们能帮助团队更好地确保代码质量。

一、SonarQube C++代码检查

SonarQube中支持多种C++语法标准,如C++11、C++14、C++17等,并能根据内部的C++规则检查代码的潜在问题,使用前需确保SonarQube至少升级到开发者版本,具体代码检查步骤如下:

1、下载Build Wrapper。由于C++属于预编译语言,因此在分析前需要先进行build构建步骤,一般建议使用Build Wrapper进行构建,原因一在于它会强制在分析之前运行构建,并且生成的源文件在分析期间可用,原因二在于它被SonarQube所推荐和支持。

SonarQube已经帮我们提供了下载Build Wrapper的URL,Windows只需要在浏览器中浏览“/static/cpp/build-wrapper-win-x86.zip”地址即可下载。

下载Build Wrapper
图1:下载Build Wrapper

2、运行构建。将Build Wrapper执行目录添加到环境变量中,然后在C++项目根目录下打开终端,并输入“build-wrapper-win-x86-64.exe --out-dir  build_wrapper_output_directory MSBuild.exe /t:Rebuild /nodeReuse:False”命令执行,执行完成后会生成三个文件:build-wrapper-dump.json、compile_commands.json和build-wrapper.log。

执行构建
图2:执行构建

3、添加配置执行。在项目根目录下创建“sonar-project.properties”的配置文件,在其中添加“sonar.cfamily.compile-commands”的设置并指定为上述编译后生成的“compile_commands.json”文件,最后执行SonarQube网页端提供的项目扫描命令即可完成C++代码扫描检查。

创建配置文件
图3:创建配置文件

二、SonarQube代码扫描质量规则

SonarQube的代码扫描质量规则是其分析识别代码问题能力的核心功能,可以说质量规则的完整决定了扫描质量的高低,下面是关于代码扫描质量规则的一些重要内容:

1、质量配置。在SonarQube的Quality Profiles页面中,包含了各种语言的质量配置文件,在Filter by下拉框中可以筛选语言对应的质量配置,点击某个配置进入配置详情页,可以看到不同配置有不同的绑定规则,如C#质量配置中当前包含321条激活扫描规则。我们可以为自己的编程语言配置自定义的Quality Profiles以满足特定需求。

Quality Profiles详情页面
图4:Quality Profiles详情页面

2、扫描规则类别可见规则左下角的标签,按识别问题的类型主要分为三大类:

①Security:安全问题,表示代码可能存在的安全隐患,如SQL注入、敏感数据泄露。

②Reliability: BUG问题,表示代码中可能导致运行时出现错误、崩溃的问题,这些问题不会直接被编译器捕获,但会在运行时报错。

③Maintainability:可维护性问题,主要用于提高代码可读性和可维护性,常见报错情形为代码行过长、常量未定义、函数参数过多等。

规则类别
图5:规则类别

以上就是SonarQube C++代码检查,SonarQube代码扫描质量规则的讲解内容。在C++等软件开发过程中,代码质量问题不应该是一个项目收尾时再考虑的补漏工程,而应贯穿于整个开发周期,在每次提交或每个版本都使用SonarQube进行一次代码检测。SonarQube丰富的扫描质量规则和各种强大的工具箱,都是它值得信赖的有效证明。

展开阅读全文

标签:

读者也访问过这里:
SonarQube
从一开始就生成高质量的代码
立即购买
最新文章
SonarQube问题生命周期管理是什么 SonarQube问题生命周期管理状态转换规则
SonarQube是一款被各大开发人员广泛使用的静态代码分析工具,它能够通过内置规则扫描代码,分析出代码中的潜在问题,并且提供了一套完整的问题生命周期管理机制,通过这套机制,我们可以清晰地跟踪问题的状态变化,从发现到修复再到验证,确保每一个问题都得到妥善处理。本文将深入围绕SonarQube问题生命周期管理是什么,SonarQube问题生命周期管理状态转换规则展开解答,帮助开发人员们更高效地管理代码问题,提升整体开发质量。
2026-01-14
SonarQube支持哪些规则 SonarQube如何代码检查
在软件测试领域,代码质量管理通常面临三重挑战:功能性、安全性、​​可维护性,传统测试领域往往只关注功能性维度,缺少了其他维度的检测。SonarQube的强大之处在于它能将这三大测试方面整合到一个统一的分析框架中,通过“规则驱动”的方式实现一站式代码检测,全方位保障代码质量。那么,SonarQube支持哪些规则,SonarQube如何代码检查?让我们深入其中,阅读本文一起寻找答案。
2026-01-14
SonarQube如何检测死循环 SonarQube重复率如何检测
开发代码时,代码质量的高低会直接关系到系统的稳定性和可维护性,随着项目规模的不断扩大,人工检查代码越来越显得捉襟见肘,有些代码是牵一发而动全身的,人工检查未免有所遗漏,这时就需要借助专业的静态代码分析工具。SonarQube作为一款功能全面的代码质量检测软件,提供了全面的代码检测能力,支持代码死循环和重复率检测。下面我们就一起跟随本文,来看看SonarQube如何检测死循环,SonarQube重复率如何检测。
2026-01-14
SonarQube怎么使用maven SonarQube怎么使用Gitlab
SonarQube作为一款开源的代码质量管理平台,正在被越来越多的开发团队所采用,它不仅能帮助我们检测代码中的潜在问题,还能提供详细的代码质量报告,使团队能够持续改进代码质量。而如今很多Java项目会使用maven来构建,使用Gitlab来团队协作开发,如果能将SonarQube集成到maven和Gitlab中,将大大提高代码检测效率。下面就通过一篇文章,带大家学习SonarQube怎么使用maven,SonarQube怎么使用Gitlab。
2026-01-14
SonarQube质量门是什么 SonarQube质量门设置值标准
代码质量是应用软件的生命线,而SonarQube的质量门则是检测这条生命线是否牢牢守住的一项指标,SonarQube通过多维度的静态代码分析,结合质量门的评估机制,为开发团队提供了客观精准的代码质量评估结果。不过,由于项目规模、业务场景和技术栈的差异,质量门的设置值需要因地制宜,针对不同项目的特点进行定制化配置,才能真正发挥其质量把关的作用。下面我们深入讲讲SonarQube质量门是什么,SonarQube质量门设置值标准。
2025-12-19
SonarQube技术债务是什么 SonarQube技术债务等级评估方法
所谓“技术债务”,顾名思义就是在技术方面产生的历史欠账,当开发人员为追求短期高效开发而牺牲代码质量时,就会产生很多未达标的代码,这些代码慢慢累积,最终形成巨额“债务”,而这些债务最终会导致系统不堪重负,出现性能下降、BUG频出甚至无法运行的现象,最后不得已还是要维护系统的“技术债务”,在SonarQube中,将这一抽象概念转化为可量化的指标。下面我们来说说SonarQube技术债务是什么,SonarQube技术债务等级评估方法。
2025-12-19

读者也喜欢这些内容:

咨询热线 18015636924