Есть ли способ заставить g++ выдавать предупреждения только о моих файлах?

Мне нравится компилировать мой код с -Wall, а иногда даже с -pedantic. Отчасти это стиль, а отчасти тот факт, что он иногда выдает очень и очень полезные предупреждения (например, использование = вместо ==).

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

Итак, как я могу заставить мой компилятор игнорировать эти предупреждения?


person Alex    schedule 08.07.2010    source источник
comment
Бьешь этих дебилов по голове битой, пока не исправят все предупреждения в шапках, потом всегда используешь -Wall -Wextra -pedantic.   -  person Nikolai Fetissov    schedule 08.07.2010
comment
@NikolaiNFetissov Вам также нужно использовать -Werror, чтобы они не могли скомпилироваться, если есть предупреждение. Это означает, что они не должны делиться кодом даже с одним предупреждением...   -  person Alexis Wilke    schedule 27.01.2017


Ответы (4)


В качестве альтернативы JS Bangs answer, вы можете заставить GCC рассматривать их как системные заголовки, который отключает все предупреждения (кроме директив #warning) для этих заголовков.

Если переключатель -isystem бесполезен, вы можете обернуть все проблемные заголовки более простыми заголовками, которые содержат только соответствующую строку:

#pragma GCC system_header
person greyfade    schedule 08.07.2010

При вызове GCC использование -isystem вместо -I для указания путей к вашим проблемным заголовкам должно отключить предупреждения для этих заголовков. См. документы GCC или этот ТАК вопрос.

person Josh Kelley    schedule 08.07.2010
comment
Благодарю вас! Это решило мою проблему. - person Austin Salgat; 03.03.2014

Используйте соответствующий #pragma, чтобы отключить предупреждения перед включением неверных заголовков, а затем снова включите предупреждения. Документы по прагмам GCC.

person JSBձոգչ    schedule 08.07.2010

Кажется, что это «ваши» заголовки, то есть вы можете изменить их самостоятельно или позволить «писателям» сделать это за вас. Если вы хотите жить без предупреждений, исправьте эти заголовки :).

В качестве альтернативы вы, конечно, можете использовать прагмы, но они антистильны и уродливы :)

person rubenvb    schedule 08.07.2010