本主题解释了如何将交叉编译器定义添加到 C++test 中,以便您可以在通常使用该编译器编译的所有项目中使用它。
在本章节中:
了解何时添加自定义编译器定义
通常,在以下情况下应定义自定义编译器:
- 您的编译器、链接器名称与支持的编译器类型的默认链接器名称不同(例如,用于 gcc 编译器的自定义构建)。
- 您正在使用一个不受支持的编译器,但是可以选择与支持的编译器类型兼容(例如,一些版本的 ARM 编译器或来自 QNX 的 QCC)。
- 链接需要引用特定库的固定选项(例如,用于嵌入式项目)。
通过定义自定义编译器,可以修改编译器、链接器的名称以及 C++test 如何使用编译器和链接器的特定模式。
添加自定义编译器定义
对于不同的 C++test 安装场景,建议使用不同的方法来添加定制编译器定义:
- 对于已安装文件系统上的安装,当多个用户引用相同的 C++test 安装时(通常是在 UNIX 系统上):具有写权限的用户应该将定制编译器定义添加到 C++test 安装目录中。这样,后面的所有 C++test 用户都可以使用创建的定制编译器定义。
- 对于本地安装(通常针对 Windows):需要使用向导创建定制编译器定义文件(如下所述),然后将其复制到共享位置(或者,更好的是,作为实用文件签入源代码控制)。然后,每个用户都应使用以下内容中所介绍的【导入】功能将这些定义导入自己的本地安装中。 Importing Custom Compiler Definitions
一旦有了自定义编译器的新定义,就可以在通常使用该编译器进行编译的所有项目中使用它。当我们讨论“为目标平台构建测试工具”时,假定您正在使用适当的编译器定义。这是定义测试数据流的一部分。
向 C++test 添加自定义编译器定义。
- (可选)如果要指定定制编译器定义文件的位置,请选择 Parasoft> 首选项,选择 Parasoft> 配置,然后启用 自定义目录> 自定义编译器 并在适当的字段中输入位置。
默认情况下,自定义编译器定义文件保存在
<user_local_settings_dir>\<app_data_dir>\Xtest\.plugins.vs\com.parasoft.xtest.check-ers.vstudio.core.cpp\compilers.
选择 Parasoft> 向导> 创建自定义编译器。将打开新的自定义编译器对话框。
选择 添加自定义编译器,然后单击 下一步。
在下一页中,指定以下自定义编译器设置:
编译器名称:在 C++test GUI 中用来标识这个定制编译器的唯一名称。
编译器系列:与您的实际编译器相对应的编译器系列(如果不确定,请选择一种 GCC 编译器)。
编译器标识符:用于标识存储其配置设置的目录的唯一名称。该名称应符合您的 OS 文件系统对目录名称施加的所有限制。
C 编译器可执行文件:C 编译器可执行文件。
C++ 编译器可执行文件:C++ 编译器可执行文件。
链接器可执行文件:链接器可执行文件。编译器和链接器设置必须一致。
(可选)如果希望查看为新的自定义编译器创建的配置文件的路径,请单击 下一步。
单击 完成。
添加新的编译器定义后,C++ test 将创建一组可自定义的配置文件。这些文件包括:
编译器定义文件:该文件存储有关在编译测试工具时应使用的编译器可执行文件和命令行模式的配置的详细信息。
重要提示
在处理交叉编译器时,大多数用户通常需要通过删除链接器命令行中默认使用的 C++test 运行时库的以下预编译版本的引用更改链接器命令行:“ $(CPPTEST_LIB_DIR)/cpptestruntime.lib“
应将它们替换为对运行时库的定制、交叉编译版本的引用。例如:“linkerCmdLine=$(exe) $(filtered_opts) $(input) $(HOME)/cpptest/ppc603/cpptestruntime.a -o $(output)”
有关如何构建运行时库的详细信息,请查阅 使用 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> 配置,然后启用 自定义目录> 自定义编译器 并在适当的字段中输入位置。
导入存储在其他位置的自定义编译器定义
选择 Parasoft> 向导> 创建自定义编译器。将打开新的自定义编译器对话框。
- 选择 导入自定义编译器,然后单击 下一步。
- 在 基本编译器定义目录 字段中,指定包含要导入的编译器定义文件(在前一节中描述)的目录。
- 确保导入的编译器目录的名称不与任何现有配置的名称重叠。
- 单击 完成。
设置构建选项
添加自定义编译器后,请确保正确设置了项目选项的【构建设置】。
- 在 GUI 中加载(或创建)C++test 项目。
- 有关详情,请查阅 创建项目。
在项目树中,右键单击项目节点,然后选择快捷菜单栏中的 Parasoft>属性 。
- 在【属性】面板中,展开 Parasoft> C++test 类别,并选择 构建设置。
- 从 编译器设置> 系列 框中,选择自定义编译器的名称。
- 通过更改链接器选项,将使用自定义编译器构建的库添加到链接器选项中。例如,您可以将它从
${cpptest:original_options}
更改为${cpptest:original_options} "C:\cygwin\home\<user_name>\Custom_Compiler\source\target\libcpptestruntime.a"
- 单击 应用,然后 确定。
温馨提示
- 编译器系列设置应该与实际编译器的名称对应。
- 应该针对您的环境设置编译器和链接器设置,并且应该保持一致。
- 对于 Managed Make 项目,在托管项目设置中指定了编译器和链接器设置。
- 有关查看和设置项目选项的详细信息,请查阅 设置项目和文件选项 。