Проблема в том, что ;
в конце вашего -D
переключателя.
Команда, которую вы даете, по сути эквивалентна наличию:
#define foo;
на вашем устройстве.источник.Это определяет от foo
до ;
, но это не является допустимым C99 (и может быть опечаткой).§6.10.3 / 3 из C99 draft n1124:
Между идентификатором и списком замещения в определении объектоподобного макроса должен быть пробел.
Таким образом, компилятор предупреждает вас или выдает ошибку, если вы компилируете с -std=c99
.
(Вы, вероятно, тоже можете удалить кавычки после удаления точки с запятой.)