#error 命令に関連する Polyspace コンパイル エラーの修正
問題
解析が停止し、#error 命令を含むメッセージが表示されます。たとえば、「#error directive: !Unsupported platform; stopping!」のようなメッセージが表示されます。
原因
通常、#error 命令は、特定のマクロが定義されていない場合に致命的なエラーをトリガーするためにコードで使用されます。コンパイラではマクロが暗黙的に定義されているため、コードのコンパイル時にエラーがトリガーされません。しかし、Polyspace® の既定のコンパイルでは、マクロが定義されていると見なされずにエラーが発生します。
たとえば、次の例では、マクロ __BORLANDC__、__VISUALC32__ または __GNUC__ が定義されていない場合にのみ、#error 命令に到達します。GNU® C コンパイラなどのコンパイラを使用した場合は、マクロ __GNUC__ が定義されていると見なされ、エラーは発生しません。しかし、Polyspace の既定のコンパイルを使用した場合は、マクロが定義されていると見なされません。
#if defined(__BORLANDC__) || defined(__VISUALC32__) #define MYINT int #elif defined(__GNUC__) #define MYINT long #else #error !Unsupported platform; stopping! #endif
解決法
コンパイルを正常に実行するには、次のいずれかを行います。
visual12.0やgnu4.9などのコンパイラを指定します。コンパイラを指定することにより、解析用のコンパイル フラグがいくつか定義されます。詳細は、
コンパイラ (-compiler)を参照してください。使用可能なコンパイラ オプションが使用しているコンパイラと一致しない場合は、コンパイル フラグ
__BORLANDC__、__VISUALC32__または__GNUC__のいずれかを明示的に定義します。詳細は、
プリプロセッサ定義 (-D)を参照してください。