在 Polyspace 平台用户界面中指定用于测试的 C/C++ 编译器
本页列出了使用 Polyspace® Test™ 进行 C/C++ 测试所支持的编译器。有关静态分析产品 Polyspace Bug Finder™ 和 Polyspace Code Prover™ 支持的编译器的信息,请参阅编译器 (-compiler)。
您可以在 Polyspace 平台用户界面中为 C/C++ 代码编写单元测试。但是,在该用户界面中编写测试之前,必须使用支持的编译器成功编译您的源文件。
Polyspace Test 在测试编写工作流的以下两个不同阶段使用有关编译器的信息:
当您解析工程中的源代码以自动填充有关函数及其输入等的信息时。
另请参阅Parse Source Code for Auto-Populating Test Information in Polyspace Platform User Interface。
当您编译工程中的源代码和测试时。
另请参阅Build and Run Tests in Polyspace Platform User Interface。
主机编译器和用户编译器
当您编译 Polyspace 平台工程时,编译过程分为两个步骤。每个步骤使用单独的编译器设定。
源代码和测试被编译成测试可执行文件。您可以编译代码和测试,使其在主机或目标上执行。此步骤所使用的编译器在此后将称为用户编译器。
主可执行文件根据内部生成的代码创建,用于向测试可执行文件发送指令。此编译步骤始终在主机上进行。此步骤所使用的编译器在此后将称为主机编译器。
对于在主机上执行测试,您可以使用同一编译器作为主机编译器和用户编译器。
请注意,Polyspace 平台工程中源代码的初始解析使用您指定的用户编译器。
查看已安装的主机编译器
如果您安装了支持的主机编译器,当您打开 Polyspace 平台用户界面时会自动检测到该编译器。当您在用户界面中创建新工程时,该编译器也会被选为用于解析源代码和编译该工程的用户编译器。如果未自动检测到您的编译器,请参阅排查“缺少编译器”错误。
要查看 Polyspace Test 当前可检测到的已安装主机编译器,请执行以下操作之一:
在 Polyspace 平台用户界面中:
在工具条中,选择预设项。
在 C/C++ 主机编译器选项的下拉列表中,查看自动检测到的主机编译器。
从命令行输入以下命令:
有关详细信息,请参阅polyspace-test -manage-host-compiler -list
polyspace-test -manage-host-compiler。
指定编译器
如果您安装了多个受支持的编译器,则可以更改默认选择的编译器。
要指定主机编译器,请执行以下操作:
在 Polyspace 平台工具条中,选择预设项。
为选项 C/C++ 主机编译器选择一个编译器。
如果您在此下拉列表中没有看到编译器,表明没有检测到支持的编译器。请参阅支持的主机编译器,安装并配置支持的主机编译器。
要指定用户编译器,请执行以下操作:
在工程窗格中双击您的工程的配置节点。
另请参阅Configure Project for Testing in Polyspace Platform User Interface。
在编译选项卡上,选择目标和编译器节点。
为编译工具链(测试) 选择一个选项。默认情况下,此列表显示已安装的、支持用作主机编译器的编译器。您可以通过使用自定义目标注册文件创建并注册目标来向此列表中添加更多编译器。有关以下操作的详细信息:
如何使用自定义目标注册文件注册目标,请参阅Run C/C++ Tests on Target in Polyspace Platform User Interface。
如何在自定义目标注册文件中定义工具链,请参阅:
Set Up PIL Connectivity by Using Target Framework (Embedded Coder),了解自定义目标注册文件的完整描述。
target.create(Embedded Coder),探索如何开始创建目标。target.Toolchain(Embedded Coder),了解如何将工具链描述添加到自定义目标注册文件。可以将编译器指定为工具链描述的一部分。
如果要使用同一编译器作为主机编译器和用户编译器,请选择自动检测。然后,编译过程将使用预设项中指定的主机编译器。如果您在另一台安装有不同主机编译器的计算机上打开该工程,则该工程将使用该计算机上的主机编译器进行编译。
支持的主机编译器
Polyspace Test 支持以下编译器的某些版本作为主机编译器。有关主机编译器的更多详细信息,请参阅主机编译器和用户编译器。
| 平台 | 编译器 |
|---|---|
| Windows® | Microsoft® Visual C++®、MinGW C/C++ |
| Linux® | GCC C/C++ |
| macOS | Xcode |
有关支持的编译器和编译器版本的完整列表,请参阅支持和兼容的编译器中的 Polyspace Test 列。
排查“缺少编译器”错误
如果未检测到受支持的编译器,则在 Polyspace 平台用户界面中解析代码或编译功能时,您将看到以下错误:
Supported C/C++ host compiler not found. Install a supported compiler.如果出现此错误,请检查以下事项:
确保已安装受支持的编译器,并使用该编译器来分析代码和编译测试。安装支持的编译器后,您可能需要重新启动 Polyspace 平台用户界面。
确保已同时安装 C 和 C++ 编译器。例如,如果您只安装 GNU® C 编译器,使用该编译器可以访问
gcc命令但不能访问g++命令,那么您无法在您的工程或预设项中将该编译器用作主机编译器。如果您已安装受支持的编译器,请检查是否需要进行额外的设置才能检测到该编译器。
大多数支持的编译器在安装后会在预设项中被自动检测到。请注意以下几点:
在 Windows 中,MinGW 编译器可能无法被自动检测到。如果您安装了 MinGW 编译器并且未自动检测安装路径,请将环境变量
MW_MINGW64_LOC设置为您的 MinGW 安装文件夹。请注意以下几点:MinGW 安装文件夹中必须包含一个
bin子文件夹,其中包含gcc和mingw32-make等可执行文件。例如,如果您将变量MW_MINGW64_LOC设置为C:\MyMinGW,则必须包含一个子文件夹C:\MyMinGW\bin,其中包含gcc和mingw32-make等可执行文件。请不要将变量MW_MINGW64_LOC设置为子文件夹路径。MinGW 安装文件夹路径不得包含空格。
在 macOS 上,如果您安装了 Xcode 编译器,它应该会被自动检测到。如果您在预设项中没有看到检测到了任何 Xcode,请确保环境变量
DEVELOPER_DIR设置正确,例如设置为/Applications/Xcode14.2.0.app/Contents/Developer。