Требования к созданию проектов из систем сборки

Для автоматического создания проектов из систем сборки, ваши команды сборки или make-файлы должны соответствовать определенным требованиям.

Требования к компилятору

  • Ваш компилятор должен быть вызван локально.

    Если вы используете такой кэш компилятора, как ccache или распределенную систему сборки, такую как distmakeпрограммное обеспечение не может проследить вашу сборку. Вы должны деактивировать их.

  • Ваш компилятор должен выполнить чистую сборку.

    Если ваш компилятор выполняет только инкрементальную сборку, используйте соответствующие опции, чтобы создать все ваши исходные файлы. Для примера, если вы используете gmake, добавьте -B или -W makefileName опция принудительно создать чистую сборку. Список опций, разрешенных для GNU® make, см. опции создания.

  • Ваше строение компилятора должна быть доступна Polyspace®. В настоящее время поддерживаются следующие компиляторы:

    • рука Кейла

    • Лязг

    • Wind River® Diab

    • GNU C/C + +

    • IAR Embedded Workbench

    • Зелёные Холмы®

    • NXP CodeWarrior®

    • Renesas®

    • Altium® Управление задачами

    • Техасский Instruments™

    • tcc - Крошечный Компилятор C

    • Microsoft® Визуальный C++®

    Если ваше строение компилятора недоступно для 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_C166_INSTALL_DIR\ include\sfr\reg CPUNAME.asfr. Например, если ваш компилятор TASKING установлен в C:\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
    При трассировке сборки Polyspace прослеживает только первую команду.

  • Если функция защиты целостности системы (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 прослеживает вашу команду сборки.

См. также

Похожие темы