本主题说明如何将交叉编译器的定义添加到 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 编译器之一)。
编译器标识符:将用于标识存储其配置设置的目录的唯一名称。此名称应符合您的操作系统文件系统对目录名称施加的所有限制。
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/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"
- 点击 应用,然后点击 确定。
提示
- 编译器系列设置应与实际编译器的名称相对应。
- 编译器和链接器设置应该根据您的环境进行设置,并且应该保持一致。
- 对于托管 Make 项目,编译器和链接器设置在托管项目设置中指定。
- 有关查看和设置项目选项的详细信息,请参见设置项目和文件选项 。