我正在尝试使用 Parasoft C/C++ Test 通过静态测试检查“编码标准”。我在 Parasoft 用户指南中只找到了“如何在 Makefile 项目中创建 bdf”部分。
如何为每个项目创建一个 bdf?是否必须使用 makefile 项目?
感谢您的回答,parasoft 不是一个著名的话题。
答案值一块金子。我找不到 cpptesttrace。
有cpptest和cpptestscan。他们可以吗?我使用的是旧版本的parasoft。
你是对的。 “cpptesttrace”是在 Parasoft C++test 版本 9.4(2012 年中)中添加的,因此您可能使用的是 9.2 或更早版本,其中仅存在“cpptestscan”。
顺便说一句,这里是 C++test 独立安装(不是 Visual Studio 插件)中程序的快速解释:
- cpptest - 启动 C++test GUI(基于 Eclipse),通常用于桌面上的交互式工作
- cpptestcli - 用于自动化静态分析的 C++test 命令行驱动程序,例如作为 Jenkins 工作运行,
- cpptestscan - 用作编译器命令行的前缀,以捕获单个编译信息并将其添加到 BDF 文件中
- cpptesttrace - (自 Parasoft C++test 9.4 起)用作构建命令行的前缀,捕获所有编译命令并保存在 BDF 文件中
cpptestscan 和 cpptesttrace 之间的主要区别在于:
- cpptestscan 必须添加到每个编译命令行之前。这意味着,cpptestscan 只能捕获单个编译,并一次将一个编译保存到 BDF 中。这通常是通过覆盖 make CC 或 CXX 变量(指定编译器,例如“cpptestscan g++ -c foo.c -o foo.o”)来完成的。
- cpptestrace 应该在整个构建命令之前添加一次,并且它跟踪构建命令调用的子进程。被识别为编译器调用的所有进程的记录都存储在 BDF 中。
如果 makefile 或构建脚本足够灵活以允许在命令行覆盖编译器,例如 cpptestscan 就可以了
make CXX="cpptestscan g++" CC="cpptestscan gcc"
对于基于 make 的项目来说,这通常是可能的。对于自定义或自动生成的构建脚本,所有的赌注都已结束。通常,唯一的选择是修改项目构建脚本,人们通常对此感到紧张。
在这种情况下,cpptesttrace 可以提供帮助,因为它完全是非侵入式的,并且可以从几乎任何构建过程中捕获构建信息。
回到本文最初的问题,如果您有多个项目:
- 使用 cpptestscan,您需要在每个项目的构建脚本中以某种方式为编译器添加 cpptestscan 前缀,以创建相应的 BDF
- 使用 cpptesttrace,您可以为每个项目运行构建,在每个项目的构建命令前面添加 cpptesttrace 以创建相应的 BDF
后者通常更容易,但您需要更新的 C++test(最新版本是 10.3)。
我希望这有帮助。
顺便说一句:请咨询 Parasoft 是否可以升级 C++test。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)