Подавление ошибки "extra ';'" в GCC, когда -pedantic включен - PullRequest
6 голосов
/ 20 апреля 2010

Я создаю свою программу с флагом -pedantic, что приводит к ошибке extra ';' (из-за стороннего заголовка, использующего несколько макросов непоследовательно; ошибка не отображается, когда -pedantic выключен). Мне не хочется выключать -pedantic, и я не хочу редактировать заголовок. Есть ли способ подавить эту точную ошибку? Как -Wno-annoying-semicolon-error переключатель компилятора или что-то?

Ответы [ 3 ]

3 голосов
/ 30 марта 2014

Используйте -isystem вместо -I при передаче включаемых путей, тогда GCC не предупредит вас о системных заголовках.

Для любых поддерживаемых вами заголовков просто отредактируйте их.

3 голосов
/ 26 апреля 2016

Вы можете отключить педантичные предупреждения для внешних заголовков следующим образом:

//save compiler switches
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"

//Bad headers with problem goes here
#include <ros/ros.h>
#include <sensor_msgs/LaserScan.h>

//restore compiler switches
#pragma GCC diagnostic pop
2 голосов
/ 01 января 2011

Обходной путь должен удалить -pedantic. Ничто другое не сработает в этом случае.

...