Рекомендуемые флаги -W для сборки C ++ с помощью gcc

Я искал список рекомендуемых вариантов предупреждений g ++ для C ++ и смог найти только это: Рекомендуется параметры предупреждений gcc для C и Полезные флаги GCC для C, которые все довольно специфичный для C

-Wall и -Wextra включают большинство, но не все предупреждения, которые может генерировать gcc.

Какие предупреждения, которые не включены этими параметрами, особенно при компиляции C ++, также должны быть включены?


person pmr    schedule 12.03.2011    source источник
comment
возможный дубликат stackoverflow.com/questions/4661561/c- what-gnu-g-parameters   -  person Philipp    schedule 12.03.2011


Ответы (2)


-Wall -Wextra имеет тенденцию охватывать действительно заслуживающие внимания. Лично мне также нравится компилировать с -ansi -pedantic, а иногда и с -Wshadow.

Кроме того, это может быть немного шумно и бесполезно в 100% случаев, но -Weffc++ иногда также есть хорошие предложения по улучшению качества кода.

РЕДАКТИРОВАТЬ В эпоху современного C ++ вы должны заменить -ansi -pedantic на -std=c++14 -pedantic или другую версию, которую вы выбрали, поскольку -ansi переведет компилятор в режим C ++ 98 / C ++ - 03.

person Evan Teran    schedule 12.03.2011
comment
Никогда не знал об эффС ++. Выглядит интересно. - person pmr; 12.03.2011
comment
@pmr, тебе тоже стоит достать книги! - person stefan; 12.03.2011
comment
@stefan Почему ты думаешь, что у меня их еще нет? Меня удивил только переключатель компилятора :) - person pmr; 12.03.2011
comment
@pmr Тем не менее, классные книги. - person stefan; 12.03.2011
comment
К сожалению, -Weffc ++ плохо спроектирован / поддерживается и сообщает слишком много бесполезного материала. К сожалению, мне пришлось отключить его. - person Offirmo; 21.08.2012
comment
@Offirmo: да, я согласен, поэтому я сказал, что это может быть шумно и не всегда полезно. - person Evan Teran; 21.08.2012

Не забывайте -Wstrict-aliasing

Я нашел, что этот пост был хорошим, посмотрите параметры: Рекомендуемые параметры предупреждений gcc для C

person stefan    schedule 12.03.2011
comment
-Wstrict-aliasing включен в -Wall - person lefticus; 12.03.2011
comment
@lefticus круто! я не знал этого. либо это новое дополнение, либо я просто ослеп, круто! - person stefan; 09.04.2011