Для автоматического создания проекта из систем сборки команды сборки или makefile должны соответствовать определенным требованиям.
Компилятор должен вызываться локально.
Если используется кэш компилятора, например ccache или распределенная система построения, такая как distmake, программное обеспечение не может отследить вашу сборку. Вы должны деактивировать их.
Компилятор должен выполнить чистую сборку.
Если компилятор выполняет только инкрементную сборку, используйте соответствующие параметры для сборки всех исходных файлов. Например, при использовании gmake, добавьте -B или -W для принудительной очистки построения. Список опций, разрешенных с GNU
®makefileNamemake, см. параметры создания.
Конфигурация компилятора должна быть доступна для Polyspace ®. В настоящее время поддерживаются следующие компиляторы:
рука Кейл
Лязг
Диаб Wind River ®
GNU C/C + +
Инструментальные средства IAR для встраиваемых систем
Зеленые холмы ®
NXP CodeWarrior ®
Ренесас ®
Задача Altium ®
Техасская Instruments™
tcc - компилятор Tiny C
Microsoft ® Visual C++ ®
Если конфигурация компилятора недоступна для Polyspace:
Напишите файл конфигурации компилятора в определенном формате. Дополнительные сведения см. в разделе Компилятор, не поддерживаемый при создании проектов из Build Systems.
Обратитесь в службу технической поддержки MathWorks. Дополнительные сведения см. в разделе Обращение в службу технической поддержки по вопросам запуска Polyspace.
При создании кода в Cygwin™ необходимо использовать версию 2.x или 3.x Cygwin для создания проекта Polyspace из системы сборки (например, Cygwin версии 2.10 или 3.0).
С помощью компилятора TASKING, если вы используете альтернативный файл sfr с расширением .asfr, возможно, Polyspace не может найти файл. При возникновении ошибки явно #include Ваш .asfr файл в предварительно обработанном коде с помощью опции Include (-include).
Как правило, используется инструкция #include __SFRFILE__(__CPU__) вместе с параметром компилятора --alternative-sfr-file для указания альтернативного файла sfr. Путь к файлу обычно . Например, если компилятор TASKING установлен в Tasking_C166_INSTALL_DIR\include\sfr\regCPUNAME.asfrC:\Program Files\Tasking\C166-VX_v4.0r1\ и используется флаг, связанный с ЦП -Cxc2287m_104f или --cpu=xc2287m_104f, путь C:\Program Files\Tasking\C166-VX_v4.0r1\include\sfr\regxc2287m.asfr.
Команда build должна выполняться до завершения без вмешательства пользователя.
В Linux ® должны использоваться только команды оболочки UNIX ® (sh). Если сборка использует расширенные команды, такие как команды, поддерживаемые только bash, tcsh или zsh, Polyspace не может отслеживать сборку.
В Windows ® должны использоваться только команды DOS. Если сборка использует расширенные команды, такие как команды, поддерживаемые только PowerShell или Cygwin, Polyspace не сможет отследить сборку. Чтобы узнать, поддерживает ли Polyspace команду build, выполните команду изcmd.exe в Windows. Дополнительные сведения см. в разделе Проверка, поддерживает ли Polyspace сценарии построения.
При использовании статически связанных библиотек программа Polyspace не может отследить построение. В Linux можно установить полный пакет Linux Standard Base (LSB) для обеспечения динамической связи. Например, в системах Debian ® установите LSB с помощью командыapt-get install lsb.
Команда build не должна использовать псевдонимы.
alias используется в Linux для создания альтернативного имени команд. Если команда build использует эти альтернативные имена, Polyspace не может их распознать.
Процесс сборки не должен использовать LD_PRELOAD механизм.
Команда build должна быть полностью исполнима на текущем компьютере и не должна требовать прав другого пользователя.
Если используется сборка sudo для изменения прав пользователя или ssh для удаленного входа на другой компьютер программа Polyspace не может отследить построение.
Если команда build использует перенаправление с помощью > или | , перенаправление происходит после того, как Polyspace отслеживает команду. Поэтому Polyspace не обрабатывает перенаправление.
Например, если команда выполняется как
command1 | command2
polyspace-configure command1 | command2
Если функция защиты целостности системы (SIP) активна в операционной системе macOS El Capitan (10.11) или более поздней версии macOS, Polyspace не может отследить вашу команду build. Перед трассировкой команды build отключите функцию SIP. Эту функцию можно повторно включить после трассировки команды построения.
Аналогичные соображения относятся и к другим приложениям для обеспечения безопасности, например, к продуктам, связанным с обеспечением безопасности, от CylureProtect, Avecto и Tanium.
Если компьютер находится в спящем режиме во время процесса построения, Polyspace не сможет отследить построение.
При создании проектов из команд построения в интерфейсе пользователя Polyspace могут возникать такие ошибки, как libcurl.so.4: version 'CURL_OPENSSL_3' not found. В таких случаях создайте проект Polyspace с помощью команды polyspace-configure в интерфейсе системной командной строки, используя команду build в качестве аргумента. Посмотрите polyspace-configure.
Примечание
Переменные среды сохраняются, когда Polyspace отслеживает команду build.