Установка Cppcheck в Qt. Работа над ошибками с помощью статического анализатора кода. Часть 1.
При написании программ, очень часто программисты делают ошибки. Большую часть из них отлавливает компилятор, но некоторые, при беглом осмотре, не являются ошибками, но могут привести к непредсказуемым глюкам и багам, на отлов которых можно потратить очень много времени.
Для, поиска подобных проблем были созданы специальные утилиты - статические анализаторы кода.
Сегодня мы рассмотрим установку и использование статического анализатора кода Cppcheck в среде разработки Qt Creator.
Установка
Скачайте дистрибутив с программой с сайта проекта:
https://github.com/danmar/cppcheck/releases/
На момент написания статьи — это версия 2.3
Просто ставим всё по умолчанию.
Запускаем Qt Creator и переходим в меню Справка – О модулях
Пролистываем вниз, пока не найдем пункт Code Analyzer и ставим галочку напротив Cppcheck (экспериментально)
Нажимаем Закрыть и Перезапустить.
После запуска модуль с сppcheck будет активирован
Откройте пункт меню Анализ - Cppcheck
Если в поле «Программа» пусто – укажите C:\Program Files\Cppcheck\cppcheck.exe
Установите все галочки.
Выберите cpp и h файлы в своем проекте
Нажмите Анализировать.
Анализ проекта
Для анализа возьмем один из моих проектов.
Настроим анализатор и выберем все *.h и .cpp файлы.
После нажатия кнопки анализировать, открывается окно со всеми найденными проблемами:
Щелкнув по любой строке, вы можете открыть описание всех проблем в файле и перейти к проблеме.
Запустим сборку.
После окончания сборки в окне редактора появятся новые сообщения.
Заключение
Сегодня мы рассмотрели установку статического анализатора кода Cppcheck и плагина для среды разработки Qt Creator.
Мы скачали и установили саму программу и плагин в среде разработки.
Настроили плагин для проекта и получили предупреждения от Cppcheck.
В следующей статье мы рассмотрим причину появления сообщений вида:
Function parameter 'xxxxxxxx' should be passed by const reference.
И причины, по которым не стоит передавать аргументы в функцию по значению.
Добавить комментарий