メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ビルド システムからのプロジェクト作成の要件

ビルド システムからの自動プロジェクト作成には、ビルド コマンドや makefile が一定の要件を満たしていなければなりません。

コンパイラ要件

  • コンパイラがローカルで呼び出されること。

    ccache などのコンパイラ キャッシュや distmake などの分散ビルド システムが使われている場合、ソフトウェアでビルドをトレースできません。それらを非アクティブにしなければなりません。

  • コンパイラはクリーン ビルドを実行すること。

    コンパイラがインクリメンタル ビルドのみを実行する場合は、該当のオプションを使用してすべてのソース ファイルをビルドします。たとえば、gmake を使用する場合は、-B または -W makefileName オプションを追加して強制的にクリーン ビルドを行います。GNU® make で使用可能なオプションのリストは、make オプションを参照してください。

  • コンパイラ構成が Polyspace® で使用可能であること。現在サポートされているコンパイラには、以下が含まれています。

    • Arm Keil。

    • ARM® v5。ARM v5 コンパイラ (-compiler armcc) も参照してください。

    • ARM v6。ARM v6 コンパイラ (-compiler armclang) も参照してください。

    • Clang。サポートされているバージョンのリストについては、を参照してください。

    • Cosmic。Cosmic コンパイラ (-compiler cosmic) も参照してください。

    • Wind River® Diab。Diab コンパイラ (-compiler diab) も参照してください。

    • Green Hills®.Green Hills コンパイラ (-compiler greenhills) も参照してください。

    • GNU C/C++。サポートされているバージョンのリストについては、を参照してください。

    • 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++®.サポートされているバージョンのリストについては、を参照してください。

    • 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 で使用できない場合は、以下のようにします。

  • コードを 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_C166_INSTALL_DIR\include\sfr\regCPUNAME.asfr です。たとえば、TASKING コンパイラが C:\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-configure command1 | command2
    ビルドをトレースするとき、Polyspace は最初のコマンドのみをトレースします。

  • オペレーティング システム 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 がビルド コマンドをトレースするときに保存されます。

参考

トピック