#error
Анализ останавливается с сообщением, содержащим директиву #error
. Например, следующее сообщение появляется: #error directive: !Unsupported platform; stopping!
.
Вы обычно используете директиву #error
в своем коде, чтобы инициировать фатальную ошибку в случае, если определенные макросы не заданы. Ваш компилятор неявно задает макросы, поэтому ошибка не инициирована, когда вы компилируете свой код. Однако компиляция Polyspace® по умолчанию не рассматривает макросы, как задано, поэтому, ошибка происходит.
Например, в следующем примере, директива #error
достигнута, только если макросы __BORLANDC__
, __VISUALC32__
или __GNUC__
не заданы. Если вы используете компилятор C GNU®, например, компилятор рассматривает макро-__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 (-compiler)
.
Если доступные параметры компилятора не совпадают с вашим компилятором, явным образом задайте один из флагов компиляции __BORLANDC__
, __VISUALC32__
или __GNUC__
.
Для получения дополнительной информации смотрите Preprocessor definitions (-D)
.