Для автоматического создания проектов из систем сборки, ваши команды сборки или make-файлы должны соответствовать определенным требованиям.
Ваш компилятор должен быть вызван локально.
Если вы используете такой кэш компилятора, как ccache
или распределенную систему сборки, такую как distmake
программное обеспечение не может проследить вашу сборку. Вы должны деактивировать их.
Ваш компилятор должен выполнить чистую сборку.
Если ваш компилятор выполняет только инкрементальную сборку, используйте соответствующие опции, чтобы создать все ваши исходные файлы. Для примера, если вы используете gmake
, добавьте -B
или -W
опция принудительно создать чистую сборку. Список опций, разрешенных для GNU®
makefileName
make
, см. опции создания.
Ваше строение компилятора должна быть доступна Polyspace®. В настоящее время поддерживаются следующие компиляторы:
рука Кейла
Лязг
Wind River® Diab
GNU C/C + +
IAR Embedded Workbench
Зелёные Холмы®
NXP CodeWarrior®
Renesas®
Altium® Управление задачами
Техасский Instruments™
tcc - Крошечный Компилятор C
Microsoft® Визуальный C++®
Если ваше строение компилятора недоступно для Polyspace:
Запишите файл строения компилятора для компилятора в определенном формате. Для получения дополнительной информации см. «Компилятор не поддерживается для создания проектов из систем сборки».
Обратитесь в службу технической поддержки 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\reg CPUNAME
.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 вашу команду сборки, запустите команду из cmd.exe
в Windows. Для получения дополнительной информации смотрите, ли Polyspace поддерживает скрипты сборки.
Если вы используете статически связанные библиотеки, Polyspace не может проследить вашу сборку. В Linux можно установить полный пакет Linux Standard Base (LSB), чтобы разрешить динамическое связывание. Для примера, на Debian® систем, установить LSB с командой apt-get install lsb
.
Команда build не должна использовать псевдонимы.
The 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 не может проследить вашу команду сборки. Перед трассировкой команды сборки отключите функцию SIP. Можно снова включить эту функцию после трассировки команды сборки.
Аналогичные факторы применяются и к другим приложениям безопасности, таким как продукты, связанные с безопасностью, от CylanceProtect, Avecto и Tanium.
Если ваш компьютер в процессе сборки находится в гибернации, Polyspace, возможно, не сможет отследить вашу сборку.
При создании проектов из команд сборки в пользовательском интерфейсе Polyspace могут возникнуть такие ошибки, как libcurl.so.4: version 'CURL_OPENSSL_3' not found
. В таких случаях создайте проект Polyspace с помощью команды polyspace-configure
в интерфейсе системной командной строки используйте команду build в качестве аргумента. См. polyspace-configure
.
Примечание
Переменные окружения сохраняются, когда Polyspace прослеживает вашу команду сборки.