|
|||||||
Флаги компилятора gcc для отображения всех предупреждений
Время создания: 08.12.2017 16:21
Текстовые метки: gcc, g++, warning, предупреждения, опции, компилятор, -Wall
Раздел: Компьютер - Программирование - Компилятор GCC
Запись: xintrea/mytetra_syncro/master/base/1512739290999psiqpg6/text.html на raw.github.com
|
|||||||
|
|||||||
Общеизвестно, что опция компиляции -Wall отображает не все предупреждения, которые возникают в процессе компиляции. Иногда полезно провести компиляцию с отображением всех предупреждений. Далее даны опции, которые помогут отображить все возможные проблемы, обнаруженные компилятором. В шаблоне makefile можно выставить такие переменные, содержащие ключи отображения предупреждений: WARNINGS = -Wall -Wextra -pedantic -Wstrict-aliasing=2 -Wformat-security \ -Wstrict-overflow=5 -Wfloat-equal -Wformat-extra-args -Wshadow -Winit-self\ -Wswitch-default -Wformat-nonliteral -Wuninitialized -Wdouble-promotion \ -Walloca -Wdouble-promotion -Wduplicated-branches -Wduplicated-cond \ -Wconversion -Wpadded -Wlogical-not-parentheses -Walloc-zero -Wcast-qual \ -Wformat-y2k -Wcast-align -Wlogical-op -Wwrite-strings -Wsign-conversion \ -Wredundant-decls -Wmissing-include-dirs -Wswitch-enum -Wstack-protector WARNINGS_CPP_ONLY = -Wuseless-cast -Wold-style-cast -Woverloaded-virtual \ -Wsuggest-final-methods -Wsuggest-override -Wzero-as-null-pointer-constant\ -Wsuggest-final-types -Weffc++ -Wsubobject-linkage WARNINGS_C_ONLY = -Wc++-compat -Wbad-function-cast Эти опции предупреждений можно разместить в переменных CFLAGS и CXXFLAGS файла Makefile вот так: FLAGS = $(OPTIMIZE) $(WARNINGS) $(INCLUDE) $(LTO) $(DEFINES) $(OPENMP) $(SECURITY) $(DEBUG) CFLAGS = $(CSTANDARD) $(FLAGS) $(WARNINGS_C_ONLY) CXXFLAGS = $(CXXSTANDARD) $(FLAGS) $(WARNINGS_CPP_ONLY) По идее, gcc/g++ подхватит эти настройки и в процессе компиляции будет их использовать. Итог: С такими флагами компилятор начнет отображать все возможные предупреждения. Для создания чистого переносимого кода желательно (хотя это и не всегда возможно, поэтому тут без фанатизма) избавляться от предупреждений в "полном" режиме отображения возможных проблем. Хотя, встретить настолько педантичных разработчиков очень сложно.
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|