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怎么扫描java单元测试 SonarQube java规则
保障代码质量是一个系统工程,需要从多个维度构建完善的质量保障体系。在功能验证方面,可以通过编写单元测试用例来确保代码逻辑的正确性,而在代码质量方面,则需要借助SonarQube等代码质量分析工具来识别潜在的代码缺陷。值得注意的是,单元测试同样可以利用SonarQube来扫描获取。那么,SonarQube怎么扫描java单元测试,SonarQube java规则是怎样呢?
2025-08-26
SonarQube C++代码检查 SonarQube代码扫描质量规则
随着C++项目代码行数的日渐增加,传统的人工审阅代码模式已无法及时发现海量代码中可能存在的问题漏洞。SonarQube作为代码分析、质量检测的工具,通过其内部数百条专为C++语言定制的扫描规则,构成了覆盖代码安全性、可靠性、可维护性等多个维度的智能防护体系。对于刚接触SonarQube的开发团队而言,建议阅读并理解下文关于SonarQube C++代码检查,SonarQube代码扫描质量规则的内容,它们能帮助团队更好地确保代码质量。
2025-08-26
SonarQube平台中可以查看git的地址吗 SonarQube可以判断是否修改代码吗
如何高效地实现代码质量管控与版本控制的深度结合,一直是开发者们重要关注的内容。是否有这样一款工具,它既能无缝对接GitHub、GitLab等主流代码托管平台,自动获取仓库项目代码;又能识别新旧代码变更,精准聚焦于修改部分进行针对性的质量检测与分析?SonarQube正是这样一款软件,在这里,相信有不少人要问:SonarQube平台中可以查看git的地址吗,SonarQube可以判断是否修改代码吗?答案是可以,下面告诉大家如何操作。
2025-08-26
SonarQube代码扫描如何配置 SonarQube代码扫描规则自定义步骤
SonarQube以其丰富的内置规则库和强大的代码分析功能广受开发测试人员青睐,然而很多时候已有的规则并不能满足当前项目的检测要求,因此掌握SonarQube代码扫描如何配置,SonarQube代码扫描规则自定义步骤等相关技巧就显得尤为重要,这些操作能帮助我们处理扫描项目中的普通代码和独特代码,让SonarQube功能获得更大程度的发挥空间。
2025-08-26
SonarQube分支分析怎么启用 SonarQube分支分析流水线集成流程
现代软件开发往往采用多分支并行开发的模式,团队内部成员各自开发自己的任务功能,再由团队leader审阅合并分支形成项目完整代码,这在一定程度上提升了开发效率。在审阅之前,可使用SonarQube为这些不同的功能分支进行独立分析,以确定分支代码的安全性和正确性,及时发现潜在问题,当然分支分析也可集成到CI/CD流程中实现自动化。在下文中,将深入探讨SonarQube分支分析怎么启用,SonarQube分支分析流水线集成流程,进而为团队提供更科学的质量保障体系。
2025-08-26
SonarQube扫描c语言代码用C++插件 SonarQube如何使用Jacoco
SonarQube内包含着众多用于检测代码的工具,如Jacoco代码重复率检测、Checkstyle代码规范检查、CPD重复代码块识别等等,这些工具共同组合成这款支持数十种编程语言的代码质量检测应用,涵盖C语言、Java语言等大众编程语言,而对于新兴语言也以插件的形式予以扩展支持。在下文中,将从SonarQube扫描c语言代码用C++插件,SonarQube如何使用Jacoco两个方面开始,带大家掌握SonarQube的使用方法。
2025-08-26

咨询热线 18015636924