在现代C/C++软件开发中,尤其是大型、跨平台的嵌入式或系统级项目中,高效且统一的构建流程是保障开发效率与产品质量的基石。CMake作为一个强大的构建系统生成器,正是为了解决这一核心问题而设计的。它允许开发者使用一种简单统一的脚本语言(CMakeLists.txt)来描述项目的构建过程,然后根据目标平台和开发者偏好,自动生成相应的原生构建文件。极大地简化了跨平台项目的配置与管理复杂度。
>>点击获取Parasoft C/C++test试用
今天我们将详细介绍如何在Parasoft C/C++test这一专业代码质量保障平台中,通过两种方式提升项目的代码质量与测试效率,去实现高效静态代码分析与单元测试,帮助团队在复杂的项目环境中精准掌控代码质量。
在CMake 项目中,Parasoft C/C++test 主要提供两种方式:一是通过生成.json文件的形式,二是通过直接修改 CMakeLists.txt 文件的方式。接下来我们以cpptest安装包下Timer项目为例,基于Linux操作系统来进行演示。
一、.json文件的形式
1.命令行下的静态分析
复制Timer项目,进入Timer目录
项目结构如下
通过使用cd在Timer目录内创建一个构建文件夹,使用CMake调用生成脚本。
我们可以看到已经生成了compile_commands.json文件。
使用cpptestcli命令进行静态分析,如下图所示
执行成功的效果图
以上即为命令行的方式进行静态分析的步骤。
我们通过CMake工具生成一个记录了项目所有编译设置的compile_commands.json文件,然后让Parasoft C/C++test命令行工具读取这个文件来自动化地进行静态代码分析。能精准、高效、批量地检查出代码中的潜在缺陷和合规性问题,并且这种命令行方式非常适合集成到自动化流程中,实现每次代码提交后的自动检查。
如何在项⽬中启⽤⽣成文件
⽅法1:
在CMakeLists.txt文件中将CMAKE_EXPORT_COMPILE_COMMANDS选项设置为ON。
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
⽅法2:
⽣成构建脚本时,将其添加到cmake的命令⾏调⽤中。
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 <path_to_src>
在项目中启用compile_commands.json文件的生成,是为了向静态分析工具提供一份机器可读的、精确的项目编译数据库。
该文件完整记录了构建系统(如CMake)编译每个源文件时所使用的全部命令参数。
2.以界面的形式进行静态分析和单元测试
对于生成的compile_commands.json文件进行导入项目,操作步骤如下:
以下为执行内建规则MISRA C 2023 (MISRA C 2012)执行成功的控制台效果图
以下为执行单元测试的效果图
二、修改CMakeLists.txt文件的方式
在Timer项目中,我将CMakeLists.txt中的参数修改为如下形式,
创建build2文件夹,并执行 cmake -DCPPTEST_PROJECT=ON ..
可以发现我的项目目录下多了文件,这些文件正是我们导入项目所需要的
接下来进行导入项目的操作,点击Import projects,再选择现有项目到工作空间中。
点击下一步,选择我们项目(刚才生成的两个配置文件的根目录)
这样项目就导入成功了。
导入compile_commands.json文件的核心目的,是为Parasoft C/C++test提供一份由构建系统(如CMake)自动生成的、机器可读的完整编译数据库,使其能够精准复现项目真实的构建环境。消除了因路径、宏定义或编译选项配置错误导致的误报与漏报。
把 Parasoft C/C++test 用到 CMake 项目中,团队基本上有两种简单又高效的选择,既可以通过导入 compile_commands.json 快速开展静态分析,也可以直接修改 CMakeLists.txt 文件,深度集成并生成 C/C++test 项目,轻松实现静态分析和单元测试。不管哪种,都能让团队在复杂的项目环境中,更顺畅地推进代码质量检查。
通过以Timer项目为例的演示,可以看出这种集成方式能够与现有 CMake构建系统无缝衔接,在不影响开发流程的同时,还能帮助团队自动、持续地执行代码合规检查与质量评估。使团队可以更有效地保障软件产品的可靠性与安全性,为交付高标准成果提供了可靠的技术保障。
关于慧都
慧都是一家行业数字化解决方案公司,专注于软件、石油与工业领域,以深入的业务理解和行业经验,帮助企业实现智能化转型与持续竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。
慧都科技作为Parasoft公司在中国区的官方授权合作伙伴,为国内企业提供Parasoft C/C++test产品的正版授权、定制化部署与全生命周期技术支持与服务。我们致力于助力客户精准贯彻功能安全标准、全面提升软件开发效率、有效管控项目风险,最终构建符合国际标准的高质量软件体系。
发表评论