2016-02-03 2 views
2

Я учитель компьютерных наук (Conversion), который недавно преподавался C, и теперь перешел к изучению Java. Наряду с Java я взял на себя обязательство изучить C++, поскольку это будет необходимо для проекта, который я хочу сделать.Что такое рекомендуемый набор флагов компилятора, чтобы помочь уменьшить ошибки?

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

-pedantic -Wall -Wextra -Wfloat-equal -ansi -O2 

я узнал, что с помощью этих флагов позволяет подобрать некоторые случаи плохой практики, а также тонкие ошибки которые могут не появляться сразу (и некоторые из них), и поэтому делает вас намного более продуктивными.

Мне было интересно, может ли кто-нибудь порекомендовать мне общий набор флагов, которые я всегда должен использовать при компиляции программ на С ++? Я только что сделал классическую программу «hello world» во время написания, поэтому не было места для ошибок. Но я хотел бы начать с хороших привычек ...

+0

На этот вопрос можно ответить, читая 'man gcc'. –

+0

Возможный дубликат [Флаги для включения подробных и подробных предупреждений g ++] (http://stackoverflow.com/questions/5088460/flags-to-enable-thorough-and-verbose-g-warnings) – Biffen

ответ

3

Я обязательно включу первоначально -Werror, который преобразует все предупреждения в error.

+0

Ok. Являются ли вышеуказанные флаги применимыми к C++? –

+0

Да, интересно, почему и «педантичный», и «анси». Любая разница? – dlmeetei

+1

Объяснение сочетания двух [здесь] (http://web.mit.edu/10.001/Web/Tips/tips_on_gcc.html) –

1

Для Clang, -Weverything, который позволяет буквально все предупреждения, в отличие от -Wall.

Тогда вы можете явно отключить (-Wno-...) те, которые, по вашему мнению, слишком много. У меня обычно всего около 5 или 10 из них.

Смежные вопросы