手动创建项目始终是可用的选项。这比较耗时,但是可以让您更好地控制项目的内容和设置。对项目内部的了解使您可以调整自动创建的项目的设置,并在遇到任何麻烦时对其进行修复/重新配置
创建项目
正如 创建和配置带有 Wind River Tornado 的项目开头所提到的那样,每个 C++test 项目都是一个 CDT 项目;C++test 只是向每个 C/C++ 项目添加了自己的扩展名/设置。要启动手动的 C/C++ 项目向导,请使用 从 GUI 创建 C++test 项目中描述的方法之一创建项目。
配置项目
接下来,您需要配置适当的构建设置。有关此配置的详细信息,请查阅 设置项目和文件选项。在这里,我们将重点介绍那些对于配置基于 Tornado 的项目必不可少的属性。
要查看和修改设置:
- 右键单击要查看和修改其设置的项目的项目树节点,然后从快捷菜单中选择 属性 。将打开【属性】对话框。
- 在左窗格中,选择 Parasoft> C++test> 构建设置 。
- 查看以下设置,并在需要时进行修改。下面将描述这些设置。
第一个需要关注的设置是【选项源】设置。可以选择 使用来自 Wind River Tornado 项目的选项 或 使用来自构建系统的选项。其他可用选项根据所选选项源的不同而不同。
“使用构建系统中的选项”的设置
首次创建项目时,默认情况下会将 使用来自构建系统中的选项 设置为其选项源。以下选项用于指定项目设置:
- 构建命令行:输入将启动您的构建系统的命令行;该系统可以是抽象的,但是默认情况下,假设使用基于 make 的命令,并预置相应的命令。此命令在项目的 Makefile 上执行您的 make,以扫描项目的编译和链接选项。 因此,一个特殊的扫描器(隐藏在 ${CPPTEST_SCAN} 宏后)替代了 C/C++ 编译器和链接器; -i 和 -B make 选项 非常有用(有关更多详细信息,请查阅 核算 Make 品种 );您还必须选择一个想要作为编译目标启动的 Tornado 项目规则 (请查阅 按照 Tornado 项目的规则工作)。
- 构建工作目录: 指定从中启动 build 命令的目录。
- 依赖文件:指定每次执行测试/构建操作时应检查是否有更改的所有文件。如果发现这些文件之一被修改,将重新执行 build 命令。您应该输入作为项目选项来源的所有文件(或影响它们)。通常,这只是您的 Makefile。
“使用来自 Wind River Tornado 项目的选项”的设置
如果您想直接从 Tornado 项目文件中提取选项,请将选项源设置为 使用来自 Wind River Tornado 项目的选项。以下选项用于指定项目设置:
- 项目文件 (.wpj): 指定 Tornado 项目文件的路径。
- 构建配置:从项目文件中读取的可用生成配置中进行选择。要重新扫描配置,单击 刷新。
两种选项源类型的设置
其余的构建设置对于两种类型的选项源都是通用的。
这个 重置缓存 按钮可清除所有扫描的选项并在下一个测试操作上强制重新扫描(有关例外情况,请参见 核算 Make 品种 )。
通过 编译设置 区域,您可以指定用于编译项目源代码和构建测试可执行文件的编译器集/工具(对于 Tornado/VxWorks,我们将其称为可重定位测试)。设置包括:
- 系列: 从所有当前注册的编译器系列中选择适当的系列。
- 在 支持的 Tornado 版本和编译器中列出了为 Tornado 设计的系列
- 您可以使用自定义编译器向导复制/导入编译器系列,如 添加自定义编译器定义中所描述的那样。
- 单击 自动检测 按钮,让 C++test 根据编译器可执行文件集和存储在编译器配置目录中的编译器版本正则表达式自动检测编译器系列(由于嵌入式解决方案使用的编译器种类繁多,此操作可能并不总是产生预期的结果)。
- C 编译器:指定 C 编译器可执行文件。
- C++ 编译器:指定 C++ 编译器可执行文件。
- 链接器:指定链接器可执行文件。
通过 选项 区域,您可以指定其他编译和链接选项;这些很少用于常规的基于主机的测试,但是对于嵌入式测试很有帮助。设置包括:
- 编译器选项:默认值为
${cpptest:original_options} - DPARASOFT_CPPTEST
。您需要为此添加必要的平台相关选项(请参阅 设置目标/平台相关选项)以执行测试。 - 链接器选项:默认值为
${cpptest:original_options}
。如果要执行单元测试,则需要将此路径附加到 C++test 运行时库的路径中(请参阅 了解和构建运行时库 以了解如何构建运行时库)。 - 运行时库源:默认值为
"${cpptest:engine_loc}/runtime
。可以进行调整以提供备用的运行时库源(如 了解和构建运行时库中所描述的那样)。
核算 Make 品种
每个 make 工具都旨在解释和执行 Makefile,但是不同 make 版本的功能,选项和行为可能会有所不同,具体取决于该工具的供应商、内部版本,甚至直接应用。使用 make 时,请务必注意其功能和缺点,以免出现意外。通常,通过监视 make 的输出很难诊断问题,尤其是当您知道它可以与另一个版本兼容时。
以下两个 make 选项在 C++test 中得到广泛使用,但在特定版本的 make 中可能不可用:
- -i - 指示 make 继续执行,尽管 Makefile 命令返回任何错误。
- -B - 命令可以无条件地调用目标 - 解决依赖关系,但忽略时间戳差异。
如果您的 make 不支持 -i
选项,那么您必须确保 build 命令将正确执行。否则,您将无法扫描所有项目文件的选项。
如果 make 不支持 -B
选项,则当其中一个依赖文件发生更改或单击 重置缓存时,C++test 将不会重新扫描以前构建的项目,除非您触摸相应的源(或所有源)或清理该项目。make 已运行,但它报告了最新的消息,并且不执行任何操作。在这种情况下,编写特殊的 make 目标可能会很有用,因为这些目标会在扫描进行过程中即时触摸/清理物体。
重要的是要注意, Tornado 的 GNU make-3.74 不支持 -B 选项!
按照 Tornado 项目的规则工作
为了构建项目,Tornado 执行其中指定的特殊默认或用户定义规则。
默认规则无法修改。它们的名称和编号取决于 Tornado 项目类型。对于可下载的应用程序模块(推荐使用 C++test 进行测试),有三个默认规则:
- <project_name>.out: 构建测试可执行文件(可重定位)。
- 对象:仅执行编译。
- 存档:执行编译并存档生成的对象。
与默认规则不同,可以添加、编辑或删除用户定义的规则。
规则独立于构建配置而存在。每个构建配置都选择了一个要执行的规则。这些规则在 Tornado 生成的 Makefile 中表示。
您可以通过在项目目录中执行 "make <target>"
来从命令行构建项目,其中目标可能来自默认规则或用户定义的规则。(请记住,当 Tornado 环境执行 build 命令时,将重新生成项目 Makefile,因此与项目 .wpj 文件相比,它们可能已过时)。C++test 项目构建命令也是如此。在大多数情况下,您只需要附加 "<project_name>.out"