Ошибка, обрабатывающая макрос с точкой с запятой в системе сборки

Проблема

Вы видите эту ошибку при создании проекта Polyspace® или файла опций от системы сборки:

Could not process macro containing a semicolon

Причина

Некоторые опции в вашей системе сборки используют точки с запятой в списке замен макроса. Автоматическое создание проекта от систем сборки не поддерживает это использование. Например, макро-OK с этой заменой список может вызвать проблемы:

{printf("OK");flush();}

Использование точек с запятой в списках замен не поддержано, потому что проект Polyspace или файл опций, созданный из вашей системы сборки самой, используют диафрагмы точки с запятой, чтобы разделить макроопределения. Для получения дополнительной информации на опциях Polyspace, которые задают макросы, см.:

Решение

Задайте макрос в заголовочном файле вместо в системе сборки. Например, задайте макро-OK как это в заголовочном файле:

#ifdef OK_DEFINED
#undef OK_DEFINED
#define OK {printf("OK");flush();}
#endif

Обеспечьте заголовочный файл только в целях анализа Polyspace с помощью опции Include (-include).