Для автоматического создания проекта от систем сборки ваши команды сборки или make-файлы должны удовлетворить определенные требования.
Ваш компилятор должен быть назван локально.
Если вы используете кэш компилятора, такой как ccache
или распределенная система сборки, такая как distmake
, программное обеспечение не может проследить вашу сборку. Необходимо деактивировать их.
Ваш компилятор должен выполнить чистую сборку.
Если ваш компилятор выполняет только инкрементную сборку, используйте подходящие варианты, чтобы создать все ваши исходные файлы. Например, если вы используете gmake
, добавьте -B
или-W
опция, чтобы обеспечить чистую сборку. Для списка опций, позволенных с GNU®
makefileName
make
, смотрите делают опции.
Ваша настройка компилятора должна быть доступна для Polyspace®. Компиляторы, в настоящее время поддержанные, включают следующее:
рука Keil
Лязг
Ветер River® Diab
GNU C/C++
IAR встроенные инструментальные средства
Green Hills®
NXP CodeWarrior®
Renesas®
Altium® Tasking
Техас Instruments™
tcc - Крошечный компилятор C
Microsoft® Visual C ++®
Если ваша настройка компилятора не доступна для Polyspace:
Запишите конфигурационный файл компилятора для своего компилятора в определенном формате. Для получения дополнительной информации см. Компилятор, Не Поддержанный для Создания Проекта от Систем сборки.
Свяжитесь с MathWorks Technical Support. Для получения дополнительной информации смотрите Техническую поддержку Контакта О Проблемах с Рабочим Polyspace.
Если вы создаете свой код в Cygwin™, необходимо использовать версию 2.x или 3.x Cygwin для создания проекта Polyspace от системы сборки (например, версию 2.10 или 3.0 Cygwin).
С ОПРЕДЕЛЯЮЩИМ ЗАДАЧУ компилятором, если вы используете альтернативу sfr файл с дополнительным .asfr
, Polyspace не может смочь определить местоположение вашего файла. Если вы сталкиваетесь с ошибкой, явным образом #include
ваш .asfr
файл в предварительно обработанном коде с помощью опции Include (-include)
.
Как правило, вы используете оператор #include __SFRFILE__(__CPU__)
наряду с параметром компилятора --alternative-sfr-file
задавать альтернативу sfr файл. Путем к файлу обычно является
. Например, если ваш ОПРЕДЕЛЯЮЩИЙ ЗАДАЧУ компилятор установлен в 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
.
Ваша команда сборки должна выполнение до завершения без любого взаимодействия с пользователем.
В Linux® только должен использоваться интерпретатор UNIX® (sh) команды. Если ваше использование сборки усовершенствовало команды, такие как команды, поддержанные только ударом, tcsh или zsh, Polyspace не может проследить вашу сборку.
В Windows® только должны использоваться команды DOS. Если ваше использование сборки усовершенствовало команды, такие как команды, поддержанные только PowerShell или Cygwin, Polyspace не может проследить вашу сборку. Чтобы видеть, поддерживает ли Polyspace вашу команду сборки, запустите команду от cmd.exe
в Windows. Для получения дополнительной информации смотрите Проверку если Скрипты Сборки Поддержек Polyspace.
Если вы пользуетесь статически соединенными библиотеками, Polyspace не может проследить вашу сборку. В Linux можно установить полный пакет Основы стандарта Linux (LSB), чтобы позволить динамическое подключение. Например, в системах Debian®, установите LSB с командой apt-get install lsb
.
Ваша команда сборки не должна использовать псевдонимы.
alias
команда используется в Linux, чтобы создать альтернативное название для команд. Если ваша команда сборки использует те альтернативные названия, Polyspace не может распознать их.
Ваш процесс сборки не должен использовать LD_PRELOAD
механизм.
Ваша команда сборки должна быть исполняемым файлом полностью на текущей машине и не должна требовать привилегий другого пользователя.
Если ваша сборка использует sudo
изменить полномочия пользователя или ssh
чтобы удаленно войти в систему другой машины, Polyspace не может проследить вашу сборку.
Если ваша команда сборки использует перенаправление с >
или |
символ, перенаправление происходит после того, как 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
в системном интерфейсе командной строки, с помощью команды сборки в качестве аргумента. Смотрите polyspace-configure
.
Примечание
Ваши переменные окружения сохраняются, когда Polyspace прослеживает вашу команду сборки.