Как отключить предупреждение GCC о том, что директива # warning является расширением GCC?
При использовании директивы #warning
вместо одного предупреждения я получаю два-то, которое я генерирую, плюс дополнительное
warning: #warning is a GCC extension [enabled by default]
.
Я могу подавить сам результат директивы #warning с помощью -Wno-cpp
, но это противоположно тому, что я хочу.
Я могу обойти это, вместо этого используя #pragma message()
, но это, кажется, делает директиву #warning довольно бессмысленной - нет ли способа подавить это предупреждение?
3 ответа:
Ах, похоже, что опция
-pedantic
включает это предупреждение, и, похоже, для него нет специального переопределения, как и для большинства других предупреждений GCC. Удаление-pedantic
избавляет от предупреждения о предупреждении.
#ifdef __GNUC__ #warning "no warning here!" #endif
Будет компилироваться с gcc или без него, даже с
-pedantic
, но он все равно выдаст предупреждение (и потерпит неудачу, если предупреждения будут перерастать в ошибки).Обновление: Согласно этому связанному вопросу , нет никакого чистого решения для выборочного отключения предупреждений о специфичной для gnu #pragma s