Я включаю файл из сторонней библиотеки, который вызывает ошибку, которая может быть понижена до предупреждения с помощью -fpermissive
. Но поскольку я не хочу «загрязнять» мой журнал компиляции этими предупреждениями, я хочу полностью отключить эти сообщения.В gcc, как отключить предупреждающее предупреждение?
До сих пор я устанавливал -fpermissive
с diagnostic pragma при включении файла; что-то вроде:
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-fpermissive"
#include <third-party-file.h>
#pragma GCC diagnostic pop
Поскольку GCC обычно обеспечить как «положительный» и «отрицательный» версию -f
флагов, я думал о не обращая внимания на «не-разрешительный» особенность:
#pragma GCC diagnostic ignored "-fno-permissive"
#include <third-party-file.h>
Но похоже, не является «отрицательной» версией флага -fpermissive
(я использую gcc 4.6.3, но даже версию 4.7.0 does not have it).
Любой шанс, который я могу имитировать? Благодаря!
'-fno-permissive' по умолчанию. '-fpermissive', и ничто не является« отрицательным »и« положительным »версиями флага. Тем не менее, вы не должны использовать это. Исправьте код! Даже если это не твое. – rubenvb
-fno-permissive не является значением по умолчанию, так как опция не существует. Поведение, которое оно имело бы, если бы оно существовало, было бы по умолчанию. Я мог бы исправить код, но он скорее похож на обходной путь ... Во всяком случае, исправление всего набора включенных заголовков на самом деле не является вариантом. – piwi
Это именно то, что я имел в виду. '-fpermissive' - это взлом/обходной путь здесь. О каком коде мы говорим в любом случае. Может быть, есть лучшая альтернатива. – rubenvb