【技术大神|2020.1:使用Parasoft C/C++test和CMake进行静态分析,C/C++test】

文章图片
C/C++test2020.1:使用ParasoftC/C++test和CMake进行静态分析
CMake是用于构建 , 测试和打包软件的最受欢迎的工具之一 。 它大大简化了大型项目的构建过程的管理 。 ParasoftC/C++test2020.1版本引入了一系列增强功能 , 可以简化与基于CMake的项目的集成 。
在针对最大和知名汽车制造商之一的测试解决方案推出期间 , 我们开发了这些增强功能 。
我们的挑战是将静态分析和单元测试功能引入基于自适应AUTOSAR平台的大型复杂项目中 。 这些项目由多个静态和动态库以及许多可执行文件组成 。
在此博客文章中 , 我将说明如何将ParasoftC/C++test静态分析功能集成到基于CMake的项目中 。 请继续关注我的下一篇文章 , 其中我将解释如何对单元测试执行相同的操作 。
将静态分析集成到基于Cmake的项目中
要执行静态代码分析 , 诸如ParasoftC/C++test之类的工具需要有关项目构建的信息 。 通常 , 只需要编译命令行来调用用于分析的文件 。
使用ParasoftC/C++test , 有多种方法可以集成到内部版本中 。 不同的构建系统可能需要不同的方法 。 对于基于CMake的项目 , 有很多可用的选项可以使静态分析变得毫不费力 , 并且对过程的更改最少 。 它使与C/C++test的平滑集成成为可能 。
CMake脚本可以轻松配置为生成编译时信息作为JSON文件 。 通常 , 每个版本会获得一个JSON文件 。 此JSON文件包含静态分析器执行代码扫描所需的全部内容 。 然后在生成生成脚本时创建带有编译命令行的JSON文件 。 C/C++test2020.1版本了解此格式 , 可以将其直接用作执行静态分析的输入 。
如何在基于CMake的项目上运行静态分析
在基于CMake的项目上运行静态分析的过程涉及以下步骤:
使用编译命令启用JSON文件的生成 。 这是一次性活动 。
生成您的构建脚本 。 这将包括compile-infoJSON文件生成 。
通过将JSON文件中的compile-info作为静态分析器的输入来运行静态分析 。
就是这样!
基于CMake的项目的静态分析示例
让我们来看一个在基于CMake的项目上运行静态分析的示例 。 如果尚未安装 , 请安装标准版本的C++test2020.1:

文章图片
C/C++test2020.1:使用ParasoftC/C++test和CMake进行静态分析
按着这些次序
安装后 , 转到安装目录并进入示例子文件夹 。 复制Timer示例 , 然后进入Timer目录 。 (这些步骤使用Linux作为开发平台 。 )
您应该看到以下内容:

文章图片
C/C++test2020.1:使用ParasoftC/C++test和CMake进行静态分析
本示例准备使用位于主目录中的“静态”makefile或使用CMake生成的构建脚本进行构建 。
通过使用cd在Timer目录内创建一个构建文件夹 。 使用CMake调用生成脚本 。
C/C++test2020.1:使用ParasoftC/C++test和CMake进行静态分析
如果在生成后列出构建目录的内容 , 我们将看到已生成compile_commands.json文件 。
对于下一个示例项目 , 已经启用了compile-infoJSON文件的生成 。

文章图片
C/C++test2020.1:使用ParasoftC/C++test和CMake进行静态分析
现在 , 我们准备使用生成的compile_commands.json文件运行静态分析 。 一个很大的优点是我们可以将.json文件直接附加到ParasoftC/C++test标准产品的命令行界面中:
C/C++test2020.1:使用ParasoftC/C++test和CMake进行静态分析
推荐阅读
- 「小米科技」小米11Pro宣布新技术!首发骁龙875+屏下镜头,米粉:价格有点小贵
- 金牌娱乐|月入十万左右,扣税额就高达两万,网红大神啊段晒收入
- 潮黑社|屏下指纹技术虽不再是难题,但市场却已无法挽回,LCD再获突破
- 科学技术宅六六|花了一亿的一加,为何效果比花两亿的华为好?,同样定制屏幕
- 西安发布|打破国外技术垄断,陕鼓自主研发全球最大轴流压缩机
- 「硬盘」互联网可能在三年内被IPFS技术彻底颠覆
- 小毛羊|除甲醛加盟到底靠不靠谱?为什么那么多人都入坑了?我们整理的除甲醛技术内容包括:
- ZAKER生活|揭秘显微镜下沼泽的爱恨情仇,大神探索《我的世界》隐秘的角落
- [恐龙]科学家为什么不用克隆技术让恐龙复活?恐龙复活的3个条件很难实现
- 手机技术资讯|华星光电将从下个月开始陆续向三星电子供应OLED屏幕面板
