メインコンテンツ

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

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

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

コンパイラ要件

ビルド コマンドの要件

  • ビルド コマンドは、ユーザーが操作することなく完了まで実行されなければなりません。

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

参考

トピック