本主题说明如何将交叉编译器的定义添加到 C++test,以便在所有通常使用该编译器进行编译的项目中使用。

章节目录:

了解何时添加自定义编译器定义

通常,在以下情况下应定义自定义编译器:

  • 您的编译器/链接器名称与支持的编译器类型的默认名称不同(例如,对于 gcc 编译器的自定义构建)。
  • 您正在使用不受支持的编译器,该编译器与受支持的编译器类型(例如,某些版本的 ARM 编译器或 QNX 的 QCC)选项兼容。
  • 链接需要引用特定库的固定选项(例如,用于嵌入式项目)。

通过定义自定义编译器,您可以修改编译器/链接器名称以及 C++test 如何使用编译器和链接器的特定模式。

添加自定义编译器定义

对于不同的 C++test 安装场景,建议使用不同的方法来添加自定义编译器定义:

  • 对于安装在挂载的文件系统上的情况,当多个用户引用同一个 C++test 安装程序时(通常用于 UNIX 系统):自定义编译器定义应由对 C++test 安装目录具有写入权限的用户添加。之后,所有 C++test 用户都可以使用创建的自定义编译器定义。
  • 对于本地安装(通常用于 Windows 系统):自定义编译器定义文件需要使用向导创建(在下文中定义),然后复制到共享位置(或者更好的是,作为实用程序文件检入源码管理中)。然后,每个用户应使用导入自定义编译器定义中描述的导入功能将这些定义导入到自己的本地安装中

一旦您有了自定义编译器的新定义,就可以在所有通常使用此编译器编译的项目中使用。在讨论“为目标平台构建测试框架”时,我们假设您正在使用的是合适的编译器定义。这是定义测试流的一部分。

将自定义编译器定义添加到 C++test。

  1. (可选)如果要指定自定义编译器定义文件的位置,则选择 Parasoft> 首选项, 选择 Parasoft> 配置,然后启用自定义目录> 自定义编译器并在相应字段中输入位置。
    • 默认情况下,自定义编译器定义文件保存在 <user_local_settings_dir>\<app_data_dir>\Xtest\.plugins.vs\com.parasoft.xtest.check-ers.vstudio.core.cpp\compilers.

  2. 选择 Parasoft> 向导> 创建自定义编译器。将打开新建自定义编译器对话框。

  3. 选择添加自定义编译器,然后点击下一步

  4. 在下一页中,指定以下自定义编译器设置:

    • 编译器名称:将用于在 C++test GUI 中标识此自定义编译器的唯一名称。

    • 编译器种类:与您的实际编译器相对应的编译器系列(如果不确定,则选择一个 GCC 编译器)。

    • 编译器标识符:将用于标识存储其配置设置的目录的唯一名称。此名称应遵循您的 OS 文件系统对目录名称施加的所有限制。

    • C 语言编译器的可执行程序:C 编译器可执行文件。

    • C++ 语言编译器的可执行程序:C++ 编译器可执行文件。

    • 链接器可执行程序:链接器可执行文件。编译器和链接器设置必须一致。

  5. (可选)如果要查看为新建的自定义编译器创建的配置文件路径,则点击下一步。

  6. 点击完成

添加新的编译器定义时,C++test 会创建一组可以自定义的配置文件。这些文件包括:

  • 编译器定义文件:此文件存储有关编译器可执行文件和命令行模式配置的详细信息,这些详细信息应在编译测试框架时使用。

    重要

    在处理交叉编译器时,大多数用户通常需要通过删除对链接器命令行中默认使用的以下预编译版本 C++test 运行时库的引用来更改链接器命令行:
    “ $(CPPTEST_LIB_DIR)/cpptestruntime.lib“
    应替换为对自定义交叉编译版本运行时库的引用。示例:
    “linkerCmdLine=$(exe) $(filtered_opts) $(input) $(HOME)/cpptest/ppc603/cpptestruntime.a -o $(output)”
    有关如何构建运行时库的详细信息,请参阅使用 C/C++test 运行时库
  • C 文件的配置:文件为 c.psrc.
  • C++ 文件的配置:文件为 cpp.psrc.

导入自定义编译器定义

任何在指定的自定义编译器位置中可用的自定义编译器定义都将在启动时自动加载并提供使用。因此,“导入”定义的一种方法是将它们保存在自定义编译器位置。默认情况下,自定义编译器定义文件保存在<user_local_settings_dir>\<app_data_dir>\Xtest\.plugins.vs\com.parasoft.xtest.checkers.vstudio.core. cpp\compilers.要更改此位置,可选择 Parasoft> 首选项,选择 Parasoft>配置,然后启用自定义目录> 自定义编译器并在相应字段中输入位置。

导入存储在其他位置的自定义编译器定义的步骤:

  1. 选择 Parasoft> 向导> 创建自定义编译器。将打开“新建自定义编译器”对话框。

  2. 选择导入自定义编译器,然后点击下一步
  3. 基本编译器的定义目录字段中,指定要导入的编译器定义文件(在上一部分中描述)所在的目录。
    • 确保导入的编译器目录的名称不与任何现有配置的名称重叠。
  4. 点击完成

设置构建选项

添加自定义编译器后,需确保正确设置项目选项的构建设置:

  1. 在 GUI 中加载(或创建)C++test 项目。
  2. 在项目树中,右键点击项目节点,然后选择快捷菜单中的Parasoft>属性

  3. 在属性面板中,展开 Parasoft> C++test 分类并选择构建设置
  4. 编译器设置> 种类框中,选择自定义编译器的名称。
  5. 通过更改链接器选项,将使用自定义编译器构建的库添加到链接器选项中。例如,可能从
    ${cpptest:original_options}
    更改为
    ${cpptest:original_options} "C:\cygwin\home\<user_name>\Custom_Compiler\source\target\libcpptestruntime.a"
  6. 点击应用,然后点击确定

提示

  • 编译器种类设置应与实际编译器的名称相对应。
  • 编译器和链接器设置应该根据您的环境进行设置,并且应该保持一致。
  • 对于 Managed Make 项目,编译器和链接器设置在托管项目设置中指定。
  • 有关查看和设置项目选项的详细信息,请参阅设置项目和文件选项
  • No labels