提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郑恭琳|2020-05-20 16:45:41.210|阅读 801 次
概述:CMake是用于构建,测试和打包软件的最受欢迎的工具之一。它大大简化了大型项目的构建过程的管理。Parasoft C/C++test 2020.1版本引入了一系列增强功能,可以简化与基于CMake的项目的集成。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
CMake是用于构建,测试和打包软件的最受欢迎的工具之一。它大大简化了大型项目的构建过程的管理。Parasoft C/C++test 2020.1版本引入了一系列增强功能,可以简化与基于CMake的项目的集成。
在针对最大和知名汽车制造商之一的测试解决方案推出期间,我们开发了这些增强功能。
我们的挑战是将静态分析和单元测试功能引入基于自适应AUTOSAR平台的大型复杂项目中。这些项目由多个静态和动态库以及许多可执行文件组成。
在此博客文章中,我将说明如何将Parasoft C/C++test静态分析功能集成到基于CMake的项目中。请继续关注我的下一篇文章,其中我将解释如何对单元测试执行相同的操作。
要执行静态代码分析,诸如Parasoft C/C++test之类的工具需要有关项目构建的信息。通常,只需要编译命令行来调用用于分析的文件。
使用Parasoft C/C++test,有多种方法可以集成到内部版本中。不同的构建系统可能需要不同的方法。对于基于CMake的项目,有很多可用的选项可以使静态分析变得毫不费力,并且对过程的更改最少。它使与C/C++test的平滑集成成为可能。
CMake脚本可以轻松配置为生成编译时信息作为JSON文件。通常,每个版本会获得一个JSON文件。此JSON文件包含静态分析器执行代码扫描所需的全部内容。然后在生成生成脚本时创建带有编译命令行的JSON文件。C/C++test 2020.1版本了解此格式,可以将其直接用作执行静态分析的输入。
如何在基于CMake的项目上运行静态分析
在基于CMake的项目上运行静态分析的过程涉及以下步骤:
就是这样!
让我们来看一个在基于CMake的项目上运行静态分析的示例。 如果尚未安装,请:
按着这些次序
安装后,转到安装目录并进入示例子文件夹。复制Timer示例,然后进入Timer目录。(这些步骤使用Linux作为开发平台。)
您应该看到以下内容:
本示例准备使用位于主目录中的“静态”makefile或使用CMake生成的构建脚本进行构建。
通过使用cd在Timer目录内创建一个构建文件夹。使用CMake调用生成脚本。
如果在生成后列出构建目录的内容,我们将看到已生成compile_commands.json文件。
对于下一个示例项目,已经启用了compile-info JSON文件的生成。
现在,我们准备使用生成的compile_commands.json文件运行静态分析。一个很大的优点是我们可以将.json文件直接附加到Parasoft C/C++test标准产品的命令行界面中:
接下来,执行静态分析并返回结果。
此集成方法可用于CI或在开发人员桌面本地使用。可能需要的唯一修改是启用compile_command.json文件的生成。
如何在项目中启用生成文件
如果您没有在项目中启用compile_command.json文件的生成,则可以通过以下两种方法之一进行。
选项1
在CMakeLists.txt文件中将CMAKE_EXPORT_COMPILE_COMMANDS选项设置为ON。
例如
设置(CMAKE_EXPORT_COMPILE_COMMANDS ON)
选项2
生成构建脚本时,将其添加到cmake的命令行调用中。
例如
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1
这就是将静态分析集成到基于CMake的项目中的全部。 接下来,我将介绍CMake的单元测试:结合使用Parasoft C/C++test和CMake进行单元测试。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢