ビルド システムからのプロジェクト作成の要件
ビルド システムからの自動プロジェクト作成には、ビルド コマンドや makefile が一定の要件を満たしていなければなりません。
コンパイラ要件
コンパイラがローカルで呼び出されること。
ccacheなどのコンパイラ キャッシュやdistmakeなどの分散ビルド システムが使われている場合、ソフトウェアでビルドをトレースできません。それらを非アクティブにしなければなりません。コンパイラはクリーン ビルドを実行すること。
コンパイラがインクリメンタル ビルドのみを実行する場合は、該当のオプションを使用してすべてのソース ファイルをビルドします。たとえば、
gmakeを使用する場合は、-Bまたは-Wオプションを追加して強制的にクリーン ビルドを行います。GNU®makefileNamemakeで使用可能なオプションのリストは、make オプションを参照してください。コンパイラ構成が Polyspace® で使用可能であること。現在サポートされているコンパイラには、以下が含まれています。
Arm Keil。
ARM® v5。
ARM v5 コンパイラ (-compiler armcc)も参照してください。ARM v6。
ARM v6 コンパイラ (-compiler armclang)も参照してください。Clang。サポートされているバージョンのリストについては、Clang コンパイラを参照してください。
Cosmic。
Cosmic コンパイラ (-compiler cosmic)も参照してください。Wind River® Diab。
Diab コンパイラ (-compiler diab)も参照してください。Green Hills®.
Green Hills コンパイラ (-compiler greenhills)も参照してください。GNU C/C++。サポートされているバージョンのリストについては、GCC コンパイラを参照してください。
IAR Embedded Workbench。
IAR Embedded Workbench コンパイラ (-compiler iar-ew)も参照してください。IAR システム。
Intel® C++ Compiler Classic (icc/icl) コンパイラ。
Intel C++ Compiler Classic (icc/icl) (-compiler intel)を参照してください。Microsoft® Visual C++®.サポートされているバージョンのリストについては、Visual Studio コンパイラを参照してください。
MPLAB XC8 C。
MPLAB XC8 C コンパイラ (-compiler microchip)も参照してください。コンパイルでは
xc8-cc実行可能ファイルを使用する必要があります。picc実行可能ファイルを使用する v2.0 よりも前の古い MPLAB XC8 コンパイラと MPLAB C18 コンパイラはサポートされていません。NXP CodeWarrior®。
NXP CodeWarrior コンパイラ (-compiler codewarrior)も参照してください。Renesas®.
Renesas コンパイラ (-compiler renesas)も参照してください。Altium® TASKING。
TASKING コンパイラ (-compiler tasking)も参照してください。Texas Instruments®.
Texas Instruments コンパイラ (-compiler ti)も参照してください。tcc - Tiny C Compiler
コンパイラ構成が Polyspace で使用できない場合は、以下のようにします。
コンパイラ用にコンパイラ構成ファイルを特定の形式で作成します。詳細については、サポートされていないコンパイラを使用するビルド システムからの Polyspace プロジェクトの作成を参照してください。
MathWorks テクニカル サポートに連絡します。詳細については、Polyspace 実行時の問題に関するテクニカル サポートへのお問い合わせを参照してください。
コードを Cygwin™ でビルドする場合、ビルド システムからの Polyspace プロジェクト作成には Cygwin のバージョン 2.x または 3.x を使用します (Cygwin バージョン 2.10 や 3.0 など)。
TASKING コンパイラで、sfr のファイルの代替として拡張子が
.asfrのファイルを使用する場合、Polyspace ではファイルを見つけられない可能性があります。エラーが発生する場合、オプション[インクルード] (-include)を使用して前処理済みのコードで.asfrファイルを明示的に#includeします。通常、ステートメント
#include __SFRFILE__(__CPU__)をコンパイラ オプション--alternative-sfr-fileと同時に使用して、代わりの stf ファイルを指定します。ファイルへのパスは通常です。たとえば、TASKING コンパイラがTasking_C166_INSTALL_DIR\include\sfr\regCPUNAME.asfrC:\Program Files\Tasking\C166-VX_v4.0r1\にインストールされていて、CPU 関連フラグの-Cxc2287m_104fまたは--cpu=xc2287m_104fを使用する場合、パスはC:\Program Files\Tasking\C166-VX_v4.0r1\include\sfr\regxc2287m.asfrになります。
ビルド コマンドの要件
ビルド コマンドは、ユーザーが操作することなく完了まで実行されなければなりません。
Linux® では、UNIX® シェル (sh) コマンドのみが使用されること。bash、tcsh または zsh にのみサポートされているコマンドなど、ビルドで高度なコマンドが使用される場合、Polyspace はビルドをトレースできません。
Windows® では、DOS コマンドのみが使用されていること。PowerShell や Cygwin にのみサポートされているコマンドなど、ビルドで高度なコマンドが使用される場合、Polyspace はビルドをトレースできません。Polyspace でビルド コマンドがサポートされているかどうかを確認するには、
cmd.exeのコマンドを Windows で実行します。詳細については、Polyspace でビルド スクリプトがサポートされるかどうかの確認を参照してください。ビルド コマンドに、ワイルドカード文字の使用により 1 行で複数のソースがコンパイルされている行が含まれていてはなりません。例:
cl.exe *.c
静的にリンクされたライブラリを使用する場合、Polyspace ではビルドをトレースできません。Linux では、完全な Linux Standard Base (LSB) パッケージをインストールして、ダイナミック リンクを許可できます。たとえば、Debian® システムで、コマンド
apt-get install lsbを使用して LSB をインストールします。ビルド コマンドはエイリアスを使用しないこと。
aliasコマンドは Linux でコマンドのエイリアスを作成するために使用されます。ビルド コマンドがそれらの別名を使用すると、Polyspace は認識できません。ビルド プロセスで
LD_PRELOADメカニズムを使用しないこと。コンパイル コマンドに、短いファイル名または 8.3 のファイル名 (以下のパスの
PROGRA~やC__~1など) が含まれていてはなりません。"command": "C:\\PROGRA~1\\mingw64\\bin\\C__~1.EXE
ビルド コマンドは現在のマシンで完全に実行可能で、別のユーザーの権限を要求しないこと。
ビルドがユーザー権限を変更するために
sudoを使用したり、別のマシンにリモートからログインするためにsshを使用する場合、Polyspace はビルドをトレースできません。ビルド コマンドが
>または|文字によるリダイレクトを使用する場合、リダイレクトは Polyspace がコマンドをトレースした後に発生します。そのため、Polyspace はリダイレクトを処理しません。たとえば、コマンドが次のように発生し、
以下のように入力した場合、command1 | command2
ビルドをトレースするとき、Polyspace は最初のコマンドのみをトレースします。polyspace-configure command1 | command2
オペレーティング システム macOS El Capitan (10.11) またはそれ以降の macOS のバージョンで System Integrity Protection (SIP) 機能が有効な場合、
polyspace-configureを使用してプロジェクトまたはビルド オプション ファイルを生成できるのは、polyspace-configureに渡すコンパイル データベース ファイルの生成がビルド システムでサポートされている場合に限られます。JSON コンパイル データベースからの Polyspace オプション ファイルの作成を参照してください。ビルド システムがコンパイル データベース ファイルの生成をサポートしておらず、SIP 機能が有効になっている場合、Polyspace ではビルド コマンドをトレースできません。その場合は別の方法として、ビルド コマンドをトレースする前に SIP 機能を無効にします。ビルド コマンドのトレース後にこの機能を再度有効にできます。CylancePROTECT、Avecto、Tanium のセキュリティ関連製品など、他のセキュリティ アプリケーションにも同様の考慮事項が適用されます。
ビルド処理中にコンピューターが休止状態になると、Polyspace でビルドをトレースできない可能性があります。
Polyspace ユーザー インターフェイスでビルド コマンドからプロジェクトを作成すると、
libcurl.so.4: version 'CURL_OPENSSL_3' not foundなどのエラーが発生する場合があります。このような場合、システム コマンド ライン インターフェイスでコマンドpolyspace-configureを使用し、ビルド コマンドを引数として使用して Polyspace プロジェクトを作成します。polyspace-configureを参照してください。
メモ
環境変数は Polyspace がビルド コマンドをトレースするときに保存されます。