提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:李显亮|2021-07-20 10:05:47.760|阅读 158 次
概述:将 C/C++test 与基于 GNU Make 或类似构建工具的项目集成通常需要修改构建脚本。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
Parasoft C/C++test针对C/C++开发的专业白盒自动化测试方案,能有效提高软件开发效率和代码质量。C++test 可以进行静态分析,全面代码审查,运行时错误检测,并在单元测试和组件测试中集成覆盖率分析。
将Parasoft C/C++test 与基于 GNU Make 或类似构建工具的项目集成通常需要修改构建脚本。在大多数情况下,编译和链接规则调用的命令行应该被改变。这可能需要您修改 make 变量,或者在某些情况下,需要修改编译和链接规则定义。
使用cpptestcc命令包装器为编译器命令行添加前缀以与 Make 编译规则集成。要确定最佳方法,首先要分析构建脚本并找到编译规则的定义。在某些情况下,特定文件有不同的规则,例如处理 C 或 C++ 文件的规则。以下示例显示了如何定义编译规则:
$(PRODUCT_OBJ_ROOT)/%$(EXT_OBJ) : %$(EXT_CXX)
$(CXX) $(CXXFLAGS) $(CXXSTATICFLAGS) -DAPPNAME=product
|
在这个例子中,编译器被一个 CXX make 变量引用。有两种选择:
以下部分描述了如何继续使用这两种方法。
通过在引用编译器的变量前添加一个附加变量来修改编译规则:
$(PRODUCT_OBJ_ROOT)/%$(EXT_OBJ) : %$(EXT_CXX)
$(COV_TOOL) $(CXX) $(CXXFLAGS) $(CXXSTATICFLAGS) -
DAPPNAME=product
|
此外,COV_TOOL在 Make 调用时(示例 a)或在构建脚本(示例 b)中为添加的变量 ( )赋值:
例子一
make COV_TOOL="cpptestcc -compiler gcc_3_4 -line-coverage -workspace /home/test/proj/cov -- "
|
示例 b
在此选项中,变量可能位于依赖于附加变量的条件内:
ifeq (COV_BUILD,$(BUILD_TYPE))
COV_TOOL="cpptestcc -compiler gcc_3_4 -line-coverage
-workspace /home/test/proj/cov -- "
endif
|
在这种方法中,编译器变量用于指定覆盖工具命令行。这可以在 Make 调用时(示例 c)或在CXX指定变量的原始值之后的构建脚本(示例 d)中完成(以避免使用原始编译器覆盖覆盖工具命令)。
示例 c
如果你的构建脚本对不同类型的文件有不同的编译规则,你可能需要覆盖多个变量,例如CCand CXX:
make CXX="cpptestcc -compiler gcc_3_4 -line-coverage -workspace /home/test/proj/cov -- g++"
|
例 d
在此选项中,变量可能位于依赖于附加变量的条件内:
ifeq (COV_BUILD,$(BUILD_TYPE))
CXX="cpptestcc -compiler gcc_3_4 -line-coverage -workspace /home/test/proj/cov -- g++"
endif
|
修改链接规则以包含代码检测所需的附加库。cpptestcc根据具体的项目需求,工具库可以有不同的形式。它可以是共享/动态库、静态库或目标文件。在所有情况下,特定的链接器选项可能具有不同的形式,但无论情况如何,修改 Makefile 的方式都非常相似。
本节重点介绍在类 Make 环境中修改链接器命令行的一般方法。
要找到合适的修改位置,首先要分析构建脚本并找到链接规则的定义。以下示例显示了如何定义链接规则:
$(PROJ_EXECUTABLE): $(PRODUCT_OBJ)
$(LXX) $(PRODUCT_OBJ) $(OFLAG_EXE)$(PROJ_EXECUTABLE) $(LXXFLAGS) $(SYSLIB) $(EXECUTABLE_LIB_LXX_OPTS)
|
您可以添加一个特殊变量来表示cpptestcc工具库,或者将覆盖率库附加到链接规则中已使用的变量之一。
以下示例显示了修改后的规则可能是什么样子:
$(PROJ_EXECUTABLE): $(PRODUCT_OBJ)
$(LXX) $(PRODUCT_OBJ) $(OFLAG_EXE)$(PROJ_EXECUTABLE) $(LXXFLAGS) $(SYSLIB) $(EXECUTABLE_LIB_LXX_OPTS) $(COV_LIB)
|
此外,为添加的变量赋值(COV_LIB)在 Make 调用时(示例 e)或在构建脚本中(示例 f):
例子e
make COV_LIB="<COV_TOOL_INSTALLATION>/runtime/lib/cpptest.a "
|
示例 f
在此选项中,变量可能位于依赖于附加变量的条件内:
ifeq (COV_BUILD,$(BUILD_TYPE))
COV_LIB="<COV_TOOL_INSTALLATION>/runtime/lib/cpptest.a"
endif
|
ifeq (COV_BUILD,$(BUILD_TYPE))
LXXFLAGS+="<COV_TOOL_INSTALLATION>/bin/engine/lib/cpptest.a"
endif
|
Parasoft是一家专门提供软件测试解决方案的公司,帮助企业打造无缺陷的软件。
从开发到质量检查,Parasoft的技术通过集成静态和运行时分析,单元、功能和API测试,以及服务虚拟化,在不牺牲质量和安全性的情况下加快软件交付,节约交付成本。
强大的报告和分析功能可帮助用户快速查明有风险的代码区域,并了解新代码更改如何影响其软件质量,而突破性的技术将人工智能和机器学习添加到软件测试中,使组织更容易采用和扩展跨开发和测试团队的有效的软件测试实践。
Parasoft针对C/C++、Java、.NET和嵌入式的开发测试都有着30多年的深入研究,很多全国500强企业使用Parasoft的产品实现了软件快速、高质量的交付。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.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@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢